Цитрусовые-огурцы или цитрусовые / xmlDSL тесты

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

Мои тесты должны сравнивать два или более файла. Я могу просто указать путь к этим файлам (я видел примеры как раз о сообщениях ..)?

Спасибо большое за вашу помощь!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
126
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите использовать 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, но мне нужно добавить решение для получения соответствующего сообщения. Спасибо еще раз :)

cicette 09.10.2018 10:47

Другие вопросы по теме