Глобальное случайное число для всех тестовых случаев - PullRequest
0 голосов
/ 09 ноября 2018

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

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

BR
Свен

0 голосов
/ 11 ноября 2018

Я решил это самостоятельно, внедрив 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"));
            }
        });

    }
}
...