Передача POJO в таблице с примерами огурца - PullRequest
2 голосов
/ 09 января 2020

Описание: Как разработчик теста, я хотел бы использовать один сценарий для тестирования 3 различных сред.

Пример упрощенного сценария:

  @smoke
  Scenario: Login to the login page and assert that the user is logged in
    Given User navigates to the page
    And User enters valid login credentials
    When User clicks on the login button
    Then Landing page can be seen

Данные (они извлекаются из файла свойств - преобразуются в POJO):

Env1.class
url = www.environment1.com
username = john
password = doe1

Env2.class
url = www.environment2.com
username = john2
password = doe2

Env2.class
url = www.environment3.com
username = john3
password = doe3

Настройка теста

  1. Каждая среда имеет свой собственный исполнитель тестов (отказоустойчивый)
  2. Каждая среда работает параллельно.
  3. Тестовые прогоны и построены с помощью ~mvn clean verify
  4. Тесты зависят от файла свойств как среда может измениться.

Потенциальное решение: Есть ли способ передать POJO в таблице примеров? или таблица данных Cucumber?

Я новичок в BDD и Cucumber - любая помощь будет отличной. Спасибо.

TLDR: есть ли способ передать переменную Prop File в таблице примеров в Cucumber?

| URL | Username | Password | 
| env1.getUrl | env1.getUsername | env1.getPassword |

Так что это будет

 @smoke
  Scenario: Login to the login page and assert that the user is logged in
    Given User navigates to the page <URL>
    And User enters valid login credentials <Username> and <Password>
    When User clicks on the login button
    Then Landing page can be seen

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вы можете использовать схему сценария для запуска одного и того же сценария с разными данными для каждого запуска. Но это будет не параллельно. Это последовательно. Файл функции:

  @smoke
  Scenario Outline: Login to the login page and assert that the user is logged in
    Given User navigates to the page <URL>
    And User enters valid login credentials <Username> and <Password>
    When User clicks on the login button
    Then Landing page can be seen
  Example:
  |URL                 |UserName|Passowrd|
  |www.environment1.com|john1   |doe1    |
  |www.environment2.com|john2   |doe2    |    
  |www.environment2.com|john3   |doe3    |

Вы можете использовать один класс бегуна. Нет необходимости использовать ни файл свойств, ни класс pojo.

0 голосов
/ 29 января 2020

Этого можно добиться, используя расширение огурца для BDD2 . Используя его, вы можете иметь внешние примеры или использовать свойства в следующем примере:

| URL | Username | Password | 
| ${env1.getUrl} | {env1.getUsername} | ${env1.getPassword} |

Альтернативно вы можете использовать CSV или XML данные поставщик.

Чтобы использовать pojo, необходимо изменить определение шага, чтобы в качестве аргумента принимать либо DataTable, либо POJO. Принимая POJO в качестве аргумента, вам нужно написать преобразователь.

Когда вы используете расширение огурца , вы также можете использовать QAFTestStep , который принимает POJO без дополнительных усилий. Здесь вы можете найти примеров шагов и файл функций .

...