Задний план

Из README Cucumber.js:

Огурец — инструмент для запуска автоматических тестов, написанный простым языком.

Другими словами, Cucumber помогает выполнить Behavior-Driven Development (BDD) с использованием синтаксиса Gherkin.

Предпосылки

Если вы используете macOS, вы можете установить необходимые компоненты с помощью Homebrew:

$ brew install node
$ brew cask install firefox
$ brew install geckodriver

Установить

Установите огурец и selenium-webdriver:

$ npm install cucumber@6 selenium-webdriver

Версии, которые мы используем:

$ npm ls --depth=0
├── [email protected]
└── [email protected]

Настраивать

Создайте файл с именем cucumber.js:

$ touch cucumber.js

Добавьте содержимое:

Запустите cucumber-js, чтобы убедиться, что сценарии/шаги не найдены.

$ npx cucumber-js
0 scenarios
0 steps
0m00.000s

Особенность

Создайте каталог с именем features:

$ mkdir features

Написание имени каталога и использование заглавных букв здесь должны быть точными.

Создайте файл .feature внутри каталога. Мы назовем его google-search.feature:

$ touch features/google-search.feature

Напишите сценарий:

Запустите npx cucumber-js, чтобы увидеть предупреждения:

Это ожидаемо, потому что определения шагов не определены.

Определения шагов

Создайте файл .js внутри каталога features для ваших действий. Мы назовем его google-search-steps.js:

$ touch features/google-search-steps.js

Импортируйте Given, When и Then из cucumber и вставьте предыдущие шаги:

Запустите npx cucumber-js, чтобы увидеть предупреждения:

Селен веб-драйвер

Заполните определения шагов действиями WebDriverJS в features/google-search-steps.js.

Преждевсего

Соберите драйвер до шага Given:

После всего

Выйти из драйвера в AfterAll хуке:

Данный

Заполните шаг Given:

Когда

Заполните шаг When:

Рекомендуется использовать подождать вместо засыпать, чтобы тест выполнялся быстро и не стал глючить.

потом

Заполните шаг Then:

Запустите npx cucumber-js, чтобы увидеть ошибку:

Тайм-аут

Таймауты можно указать двумя способами:

  1. Глобальный
  2. Шаг (или крючок)

Глобальный тайм-аут

Чтобы указать глобальное время ожидания:

Время ожидания шага

Чтобы указать время ожидания шага:

Обратите внимание, как объект, содержащий тайм-аут, указывается в качестве второго аргумента функции шага.

Запустите npx cucumber-js, чтобы убедиться, что сценарий проходит успешно:

$ npx cucumber-js
...
1 scenario (1 passed)
3 steps (3 passed)
0m06.881s

Успех!

Заключительные шаги

Окончательный features/google-search-steps.js выглядит так:

Ресурсы

Ознакомьтесь с рецептами WebDriverJS для получения дополнительных примеров.

Огурец

Селен

Эта статья была впервые опубликована на сайте замечательной марки.org 25 октября 2020 г.