Citrus-Framework - 自定义操作的参数处理

Citrus-Framework - Parameter handling for Custom-Actions

为了解决此处描述的问题:,我创建了一个自定义操作,它基本上包装了 Java-Call 以在我的 Java-Code 中为我提供选项根据需要验证 Java-程序结果。

但是将 parameters/variables 从测试用例转移到 Java 程序很困难。 我需要在测试期间和每次使用不同的参数多次调用这个程序。因此,我在调用自定义操作之前添加了以下内容:

variable("param1", "myValue1");
variable("expectedReturnCode", "0");
action(myCustomAction);

稍后在测试中,经过一些其他操作后,我希望它像这样:

variable("param1", "myValue2");
variable("expectedReturnCode", "99");
action(myCustomAction);

在我的自定义操作中-Class 我有以下内容:

String param1 = context.getVariable("param1");
expectedReturnCode = Integer.parseInt(context.getVariable("expectedReturnCode"));

问题是,在Custom-Action Call之前Text-Context没有填充,似乎在第一个action被调用之前就已经完全设置了Context,所以即使是第一个CustomAction也得到99作为预期的 RC。

所以,我的问题是:如何将各个参数传输到我的自定义操作?

不要使用variable(),因为它仅用于在测试运行之前初始化变量。这就是为什么您的第二次调用会立即覆盖变量值的原因。 variable() 仅用于在测试开始时进行设置。

相反,您应该使用 createVariable(String variableName, String value),它在 运行 时间作为测试用例中的测试操作执行。