Рубрики
Без рубрики

Как использовать Webdriver CuCumber и Selenium эффективно для автоматизации тестирования BDD (часть 1)

В этом руководстве ориентировано на то, как Webdriver огурца и селена могут использоваться для реализации автоматизированных испытаний на разработку поведения (BDD) и принятия лучших практик программирования.

Автор оригинала: 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.