Автор оригинала: Marcus Chukwuoma.
В этом руководстве ориентировано на то, как Webdriver огурца и селена могут использоваться для реализации автоматизированных испытаний на разработку поведения (BDD) и принятия лучших практик программирования. Мы будем использовать Webdriver Selenium с JavaScript. Огурец Является ли BDD-инструментом, который использует язык гаерокина для описания поведения программного обеспечения в формате для чистящихся человеком, без необходимости переходить в детали внедрения записи кодов. Следовательно, соединяет разрыв связи между командой бизнеса и развития. Webdriver Selenium является инструментом, используемым для моделирования использования приложений путем автоматизации взаимодействия пользователей с разными частями приложения. Это помогает убедиться, что приложение работает как ожидалось.
Установка
Ниже приведена структура файла для простого исследования
e2e ├── config.js │ │ ├── features │ │ │ ├── app.feature │ │ │ ├── step-definitions │ │ ├── app.js │ │ │ ├── support │ │ ├── world.js │ │ ├── hooks.js
Мы будем использовать Chrome для тестирования, хотя Webdriver Selenium – это совместимый браузер. Установите тестовые зависимости.
$ npm install selenium-webdriver cucumber chromedriver -D
Итак, вы должны иметь следующее в package.json devdependonds.
{ ... "scripts": { "e2e-test": "cucumber-js e2e" }, "devDependencies": { "chromedriver": "^83.0.0", "cucumber": "^6.0.5", "selenium-webdriver": "^4.0.0-alpha.7" } }
Примечание: Для Webdriver на работу версия установленного модуля Chromedriver и Chrome на вашем компьютере должна быть одинаковой, до версии патча. Чтобы убедиться, что эта версификация всегда совместима независимо автоматическими обновлениями вашего Chrome Browser, создать .npmrc Файл в вашем корневом каталоге и добавьте это правило к нему. Он гарантирует, что установленная версия Chromedriver всегда будет такой же, как ваш браузер Chrome.
detect_chromedriver_version=true
Чтобы завершить настройку, добавьте следующее в свои файлы, как указано:
e2e/config.js.
module.exports = { timeout: 10000, browser: 'chrome', baseURL: 'mail.google.com' };
E2E/Особенности/Подставка/World.js
const seleniumWebdriver = require('selenium-webdriver'); const {setWorldConstructor, setDefaultTimeout} = require('cucumber'); const {timeout, browser} = require('../../config'); class CustomWorld { constructor() { this.driver = new seleniumWebdriver .Builder() .forBrowser(browser) .build(); } } setDefaultTimeout(timeout); setWorldConstructor(CustomWorld);
E2E/Особенности/Поддержка/Cooks.js
const {Before, After} = require('cucumber'); Before(function() { return this.driver.manage().window().maximize(); }); After(function() { return this.driver.quit(); });
Тестирование
Для обеспечения повторного использования определений поэтапных определений для аналогичных тестовых случаев рекомендуется использовать струнные аргументы в сценариях огурцов. Учитывая поведение для Gmail Войти в качестве исследования, вставьте следующие сценарии огурцов в app.feature файл
Feature: Gmail sign in As a Gmail user I want to be able to sign in to my Gmail Account Scenario: A user signing in with invalid email should get an error message indicating that email cannot be found Given A user visits mail.google.com Then the user should see the following navigation options | OPTIONS | | Sign in | | Create an account | When the user clicks on "Sign in" option Then the user should see the following texts | TEXTS | | Sign in | | Continue to Gmail | When the user enters "email" into the "email input" field And the user clicks on "Next" Then the user should see "Couldn't find your Google Account" error message Scenario: A user signing in with valid email and invalid password should get an error message indicating wrong password Given A user visits mail.google.com Then the user should see the following navigation options | OPTIONS | | Sign in | | Create an account | When the user clicks on "Sign in" option Then the user should see the following texts | TEXTS | | Sign in | | Continue to Gmail | When the user enters "" into the "email input" field And the user enters "pas" into the "password input" field When the user clicks on "Next" Then the user should see "Wrong password" error message Scenario: A user signing in with valid email and valid password should sign in successfully and the user identity should be visible on the page Given A user visits mail.google.com Then the user should see the following navigation options | OPTIONS | | Sign in | | Create an account | When the user clicks on "Sign in" option Then the user should see the following texts | TEXTS | | Sign in | | Continue to Gmail | When the user enters " " into the "email input" field And the user enters " " into the "password input" field When the user clicks on "Next" Then the user should see the Google Account used to sign in to the email
Часть 2 Содержит определения шагов для этого BDD-теста и дальнейшие объяснения на подходе BDD.