Сейчас я использую цитрусовый каркас, интегрированный с огурцом. Думаю поменять на XML DSL (или java DSL). Должен ли я добавлять шаблон для каждого отдельного протестированного файла (xml или json)? И связать их?
Мои тесты должны сравнивать два или более файла. Я могу просто указать путь к этим файлам (я видел примеры как раз о сообщениях ..)?
Спасибо большое за вашу помощь!




Если вы хотите использовать Cucumber BDD с Citrus, вам следует использовать Java DSL, поскольку он интегрирован в создание классов определения шагов Cucumber. В методе определения шага вы, конечно, можете загружать шаблоны из файловой системы или пути к классам. Допустим, у вас есть следующая строка в спецификации BDD.
When user adds entry "path/to/template.txt"
Вы можете использовать путь в определении шага в качестве параметра метода и загрузить шаблон из файловой системы или пути к классам.
@When("^user adds entry \"([^\"]*)\"$")
public void add_entry(String path) {
designer.http()
.client(todoClient)
.send()
.post("/todo")
.contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.payload(new ClassPathResource(path));
}
Конечно, вы также можете сделать это при получении и проверке сообщений с помощью шаблонов файлов.
Если вы собираетесь использовать чистые XML-тесты без Cucumber, вы можете просто указать путь к файлу в операции отправки / получения.
<testcase name = "TodoList_Post_IT">
<actions>
<http:send-request client = "todoClient">
<http:POST path = "/todo">
<http:headers content-type = "application/x-www-form-urlencoded"/>
<http:body>
<http:resource file = "path/to/template.txt" />
</http:body>
</http:POST>
</http:send-request>
</actions>
</testcase>
Это работает для Http и всех других видов транспорта сообщений (JMS, WebSocket, SOAP WebServices, ...).
Вы также можете использовать тестовые переменные в своих файлах шаблонов, чтобы повторно использовать их в нескольких тестовых примерах. Взгляните на тестовые переменные в Citrus, они помогут вам получить больше данных динамических тестов.
Спасибо, Кристоф. У меня были проблемы с документом, но теперь он лучше. У меня еще вопрос по поводу параллельных тестов: есть ли возможность запустить параллельные тесты в цитрусовых? На данный момент я использую конфигурацию maven-failsafe, но мне нужно добавить решение для получения соответствующего сообщения. Спасибо еще раз :)