Глобальное случайное число для всех тестовых случаев

Я хотел бы иметь глобальную переменную, которая будет использоваться во всех моих тестах, поэтому я настроил в: citrus-context.xml следующее:

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

Кажется, это работает, но сгенерированная переменная заменяется новым случайным числом, каждый раз, когда я ссылаюсь на эту переменную.

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

Каков предпочтительный способ генерирования случайного числа для использования во всех тестах?

2 ответа

Спасибо за сообщение об этом!
К сожалению, вы нашли ошибку в Citrus. Кажется, что выражение вычисляется каждый раз, когда вызывается переменная. Это не должно быть так. Я открыл эту проблему на GitHub, чтобы отследить ошибку.

BR,
Sven

Я решил это самостоятельно, внедрив BeforeSuite. Благодаря этому сообщению здесь: Как я должен передать переменную, извлеченную из полезной нагрузки через тестовые классы? Итак, вот как я это сделал:

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"));
            }
        });

    }
}
Другие вопросы по тегам