Я работал с Citrus Framework для написания интеграционных тестов для приложений, состоящих из нескольких взаимодействующих сервисов Spring Boot. Службы взаимодействуют через HTTP-вызовы REST.
Я нахожусь в точке, где мне нужно написать тест, который будет выполнять сквозное интеграционное тестирование в мультисервисном приложении.
Сценарий приложения выглядит следующим образом:
A master служба, которая вызывается из клиента через вызов POST. Мастер вызывает две работника услуги, в последовательности - это нельзя сделать параллельно через вызовы POST. Мастер ожидает ответа от каждого работника. Как только процесс завершен, мастер возвращает ответ о завершении клиенту, который запустил весь процесс.
Я написал тесты Citrus для всех трех этих служб, и в случае мастера есть тест действия, которые по сути издеваются над двумя рабочими службами, диктуя, что они должны получить и ответить. Чтобы заставить его работать правильно, потребовалось некоторое время и усилия.
Теперь я хочу написать тест Citrus, который позволит тестировать процесс от начала до конца sh с всеми сервисов реальных и не поддельных. Я думаю, что этот тест будет похож на основной интеграционный тест, за исключением того, что рабочие больше не будут насмехаться.
Я не знаю, как это сделать с помощью Citrus. В руководстве пользователя есть раздел (https://citrusframework.org/citrus/reference/2.8.0/html/index.html#test -actors ), в котором, как кажется, это рассматривается, но он довольно короткий, и я не вижу, как это происходит на самом деле. Как «настоящие» актеры «подключены»? Как они настроены и запущены / остановлены? Кроме того, в этом разделе приведены примеры только в XML, примеров DSL Java нет.
Этот вопрос выходит за рамки только Citrus? Нужно ли задействовать более широкий набор персонажей, например, плагин maven или maven?