我正在将Java DSL与TestRunner一起使用来定义我的测试,并且基本上想要执行以下步骤:
基本上是这样的:
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来调用/包含它。
也许有什么方法可以获取实际的TestContext并将其移交给我的Java代码?
我的理解是,当使用TestRunner时,所有内容都会立即执行,我在想:哦,太酷了,因为我可以在需要时插入标准Java代码。
答案 0 :(得分:0)
是的,我自己找到了解决方案,只是阅读了文档的第二遍(也许是第三遍)。
我已经这样更改了我的测试班:
@CitrusTest
@Test @Parameters("context")
public void run(@Optional @CitrusResource TestContext context) {
...
.....
...
MyClassABC.myStaticFunctionXZY(context.getVariable("myConfig"));
这为我注入了实际的Test-Context,并允许我从Java代码访问和操作变量。好东西。