Установка переменных и ожидаемых значений в Citrus Framework

У меня есть следующий сценарий, который я хочу проверить:

  1. Выполните вызов службы A, получите количество элементов в JsonArray
  2. Вызов службы B для выполнения заданного действия
  3. Выполните вызов службы A еще раз, чтобы убедиться, что в JsonArray есть новый элемент.

PS: нет никакой корреляции между вызовом службы B на шаге 2 и проверкой на шаге 3. Я просто могу убедиться, что количество элементов увеличилось на 1.

  • Я могу выполнить шаг 1, используя цитрусовые http() и .extractFromPayload(), и добавить его в переменную
  • Я могу выполнить шаг 2 с другим вызовом http()

Однако я застрял на шаге 3, так как не могу изменить значение переменной, полученной на шаге 1. Я пытался использовать action(new AbstractTestAction() {...}), но они не происходят между тестами, поэтому он не работает.

Есть ли способ сделать это?


person Neill Lima    schedule 22.08.2017    source источник


Ответы (1)


Я адаптировал решение из Citrus Framework — можно ли назначить переменную из ответа?. Я смог сделать это с помощью:

Добавление этого шага в тест (перед выполнением шага 3 выше):

groovy(new ClassPathResource("addVariable.groovy"));

Это содержимое addVariable.groovy

int expected = context.getVariable("currentDataXYZ").toInteger() + 1
context.getVariables().put("expectedDataXYZ", expected.toString())

Я думаю, что это немного громоздко, но это работает! Если есть более чистый способ сделать это, было бы неплохо или, может быть, запрос функции :)

person Neill Lima    schedule 22.08.2017