Как сделать так, чтобы шаги теста на огурец выполнялись только в Chrome, а остальные шаги в разных браузерах? - PullRequest
0 голосов
/ 06 мая 2019

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

Given I navigate to my setup application
And I published an article
When I open client website
Then I can see the published article

Step1 и Step2 - это шаги установки, которые необходимо выполнить на веб-сайте настройки и только один раз в Chrome, чтобы создать настройку для сценария.И после того, как это будет сделано, необходимо проверить шаги 3 и 4 на разных браузерах / устройствах (IE, Chrome, Firefox, Safari, Mobile) на веб-сайте клиента.

Моя структура находится в Cucumber и JavaScript.Как я могу добиться этого в огурце, чтобы некоторые шаги сценария выполнялись только на Chrome один раз, а остальные шаги должны выполняться на разных устройствах и браузерах?

Я считаю, что не могу использовать хуки до и после в качестве шагов установкиотличаются для каждого теста, однако, до и после запуска ловушек для всех тестов в рамках. Также, нельзя использовать фон, так как фон снова будет фоном для всех тестов в каждом файле объектов.Но в моем случае каждый тест имеет разные настройки.

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Зачем вам нужны первые два шага в этом конкретном сценарии, чтобы пройти через браузер. Конечно, вы знаете, что опубликованная статья - это просто запись в вашем хранилище данных. Конечно, у вас, вероятно, есть сценарии, которые показывают, что вы можете создать статью, используя свой веб-интерфейс, например

Scenario: Create article
  Given I can create an article
  When I create an article
  Then I should have created an article

но как только они у вас есть, вам больше не нужно просматривать веб-интерфейс каждый раз, когда вам нужно создать статью. Вместо этого вы можете ускорить процесс либо

1) Вызов напрямую службы, которая создает статью (предпочтительно) 2) Запись непосредственно в базу данных для создания соответствующей записи статьи

Таким образом, ваш сценарий станет чем-то вроде

Scenario: View my published article
  Given I have published an article  # shortcuts and does not use a browser
  When I view my article             # uses a browser
  Then ...

Теперь ваш сценарий использует только один браузер, и ваша проблема исчезла. Теперь вы можете использовать различные методы, чтобы гарантировать возможность просмотра статей в различных браузерах.

Этот шаблон ярлыков для Givens и использования только пользовательского интерфейса для When имеет дополнительное преимущество, заключающееся в ускорении ваших сценариев. Вы не можете легко использовать его для каждого данных, некоторые вещи, такие как «Учитывая, что я вошел в систему», должны проходить через браузер, но подавляющее большинство Givens могут быть ярлыками.

0 голосов
/ 07 мая 2019

Не уверен, что это хорошая идея, но это то, что вам нужно:

Scenario Outline: Multiple browsers
  Given I navigate to my setup application
  And I published an article
  When I open client website with "<browser>"
  Then I can see the published article with "<browser>"

Examples:
 | browser  |
 | IE       |
 | Chrome   |
 | Firefox  |
 | Safari   | 
 | Mobile   |

См. https://cucumber.io/docs/guides/10-minute-tutorial/#using-variables-and-examples

В определении шага вы должны настроить соответствующий веб-драйвер.Чек https://github.com/bonigarcia/webdrivermanager

...