Глобальное случайное число для всех тестовых случаев
Я хотел бы иметь глобальную переменную, которая будет использоваться во всех моих тестах, поэтому я настроил в: 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"));
}
});
}
}