所有测试用例的全局随机数

Global Random Number for all test-cases

我想要一个全局变量,用于我所有的测试,因此我配置了:citrus-context.xml 如下:

<citrus:global-variables>
    <citrus:variable name="myVariableName" value="citrus:randomNumber(3)"/>
</citrus:global-variables>

这似乎可行,但是生成的变量被更改为一个新的随机数,每次我引用这个变量。

${myVariableName} ${myVariableName} ${myVariableName}
835               165               516

生成要在所有测试中使用的随机数的首选方法是什么?

我通过实施 BeforeSuite 自行解决了这个问题。感谢这里 post: 所以,我就是这样做的:

public class InitializationTest extends TestDesignerBeforeSuiteSupport {

    @Override
    public void beforeSuite(TestDesigner designer) {
        designer.createVariable("myGlobalNumber", RandomNumberFunction.getRandomNumber(3, true));

        designer.action(new AbstractTestAction() {
            @Override public void doExecute(TestContext testContext) {
                testContext.getGlobalVariables()
                        .put("myGlobalNumber", testContext.getVariable("myGlobalNumber"));
            }
        });

    }
}

感谢举报!
很遗憾,您在 Citrus 中发现了一个错误。似乎每次调用变量时都会评估表达式。事实并非如此。我已经打开这个 issue on GitHub 来跟踪错误。

BR,
斯文