使用 Java DSL TestRunner - 如何在我自己的 Java-代码中访问变量

Using Java DSL TestRunner - How to access variable in my own Java-Code

我将 Java DSL 与 TestRunner 一起使用来定义我的测试,基本上需要以下步骤:

  1. 使用 http 客户端从 REST 端点加载 JSON-结构
  2. 将收到的JSON-结构提取到柑橘变量中
  3. 那么出于某种原因,我想用一些 Java-代码来操作这个变量 - 但我无法在我的 Java-代码中使用它。

基本上是这样的:

http(builder -> builder.client("client").send()
    .get("/config").header("Content-Type", "application/json"));
http(builder -> builder.client("client").receive()
    .response(HttpStatus.OK).messageType(MessageType.JSON)
    .extractFromPayload("$", "myConfig"));

设置变量:

echo("${myConfig}")

显示所需的输出。但是我如何才能访问该变量以在纯 Java 中对其进行处理?
我试过这种方法:

variable("chgConfig", MyClassABC.myStaticFunctionXZY("${myConfig}");

而且我已经尝试使用 Citrus Function,但我不知道如何使用 Java DSL call/include 它。
有没有办法获取实际的 TestContext 并将其交给我的 Java-Code?

我的理解是,当使用 TestRunner 时,一切都会立即执行,我在想:哦,太好了,因为我可以在需要时插入标准 Java-代码。

是的,我自己找到了解决方案,只是阅读了第二次(或第三次)文档。

我把我的 Test-Class 改成了这样:

    @CitrusTest
    @Test @Parameters("context")
    public void run(@Optional @CitrusResource TestContext context) {
...
.....
...
    MyClassABC.myStaticFunctionXZY(context.getVariable("myConfig"));

这为我注入了实际的 Test-Context 并允许我从我的 Java-Code 访问和操作变量。很棒的东西。