Задний план
Из 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
, чтобы увидеть ошибку:
Тайм-аут
Таймауты можно указать двумя способами:
- Глобальный
- Шаг (или крючок)
Глобальный тайм-аут
Чтобы указать глобальное время ожидания:
Время ожидания шага
Чтобы указать время ожидания шага:
Обратите внимание, как объект, содержащий тайм-аут, указывается в качестве второго аргумента функции шага.
Запустите npx cucumber-js
, чтобы убедиться, что сценарий проходит успешно:
$ npx cucumber-js ...
1 scenario (1 passed) 3 steps (3 passed) 0m06.881s
Успех!
Заключительные шаги
Окончательный features/google-search-steps.js
выглядит так:
Ресурсы
Ознакомьтесь с рецептами WebDriverJS для получения дополнительных примеров.
Огурец
Селен
- WebDriverJS: асинхронно/ожидание
- Использование geckodriver с Selenium
- BrowserStack: Selenium с Cucumber JS
- selenium-webdriver документация
Эта статья была впервые опубликована на сайте замечательной марки.org 25 октября 2020 г.