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

Cucumber.js Учебное пособие с Примерами Для Selenium JavaScript

Актуальность использования фреймворка BDD, такого как Cucumber.js часто ставится под сомнение нашими коллегами-автоматами… Помечено как javascript, java, учебник, разработчик.

Актуальность использования фреймворка BDD, такого как Cucumber.js часто ставится под сомнение нашими коллегами-тестировщиками автоматизации. Многие считают, что это просто добавляет больше работы к их столу. Однако использование фреймворка BDD имеет свои преимущества, которые могут помочь вам значительно продвинуть автоматизацию тестирования Selenium. Не говоря уже о том, что эти фреймворки BDD помогают всем вашим заинтересованным сторонам легко интерпретировать логику, лежащую в основе вашего сценария автоматизации тестирования Selenium. Использование рычагов Cucumber.js для вашего тестирования Selenium JavaScript может помочь вам указать критерий приемлемости, который будет легко понять любому непрограммисту. Это также может помочь вам быстро оценить логику, заложенную в вашем пакете автоматизации тестирования Selenium, не просматривая огромные куски кода.

С заданной структурой “когда-тогда”, основами разработки, ориентированными на поведение, такими как Cucumber.js сделали тесты намного проще для понимания. Чтобы понять это в контексте, давайте рассмотрим небольшой сценарий: вы должны проверить банкомат, хорошо ли он работает. Мы напишем условия, которые, учитывая баланс счета, составляют 1000 долларов, и карта действительна И в автомате достаточно денег, Когда Владелец счета запрашивает 200 долларов Затем кассовый пункт должен выдать 200 долларов А баланс счета должен составлять 800 долларов И карточка должна быть возвращена.

В этом Cucumber.js учебное пособие, мы глубоко погрузимся в четкое понимание настройки, установки и выполнения нашего первого теста автоматизации с Cucumber.js для тестирования Selenium JavaScript.

Что такое Cucumber.js и что делает его таким популярным?

Давайте начнем наш Cucumber.js учебное пособие с небольшим кратким описанием фреймворка. Cucumber.js это очень надежная и эффективная платформа тестирования JavaScript Selenium, которая работает над процессом разработки, ориентированным на поведение. Эта библиотека тестов обеспечивает легкую интеграцию с Selenium и предоставляет нам возможность определять наши тесты на простом языке, понятном даже неспециалисту. Cucumber.js Библиотека тестирования JavaScript Selenium следует заданной структуре “когда-тогда”, которая помогает представлять тесты простым языком, что также делает наши тесты точкой общения и сотрудничества. Эта функция улучшает читабельность теста и, следовательно, помогает лучше понять каждый вариант использования. Он используется разработчиками для модульного тестирования, но в основном используется для интеграции и сквозных тестов. Более того, он объединяет тесты и делает их настолько разборчивыми, что практически нет необходимости в документации для тестовых примеров, и они могут быть даже усвоены бизнес-пользователями.

Настройка Cucumber.js для тестирования Selenium Javascript

Поэтому, прежде чем мы продолжим нашу Cucumber.js Учебное пособие, чтобы начать писать и выполнять ваши автоматизированные тестовые сценарии с использованием Cucumber, нам необходимо настроить нашу систему с помощью Cucumber.js создайте фреймворк и установите все необходимые библиотеки и пакеты, чтобы начать тестирование Selenium JavaScript.

JS узла и диспетчер пакетов узла (npm): Это базовый пакет и наиболее важный для любой платформы тестирования Selenium Javascript. Его можно загрузить через менеджер npm, т.е. установив диспетчер пакетов узла из nodejs.org официальный сайт: http://www.nodejs.org/en/download/package-manager или с помощью установщика пакетов для различных операционных систем, загруженного с веб-сайта здесь для Mac OS, Windows или Linux. Мы можем выполнить команду npm в командной строке и проверить, правильно ли она установлена в системе.

Cucumber.js Библиотечный модуль: Следующим предварительным условием, необходимым для выполнения нашего теста, является Cucumber.js библиотека. Нам понадобился бы Cucumber.js пакет как зависимость от разработки. После успешной установки и проверки JS узла в системе мы будем использовать диспетчер пакетов узла, т.е. npm, который он предоставляет, для установки Cucumber.js пакет библиотеки в репозитории npm.

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

$ npm install -g cucumber 
and
npm install  --save-dev cucumber

Здесь параметр ‘g’ указывает на глобальную установку модуля, что означает, что он не ограничивает использование модуля текущим проектом, и к нему также можно получить доступ с помощью инструментов командной строки. Команда, выполняемая с использованием параметра ‘–save-dev ‘, поместит исполняемый файл Cucumber в базовый каталог, т.е. каталог ./node_modules/.bin, и выполнит команды в нашем инструменте командной строки, используя ключевое слово cucumber.

Java – SDK: Поскольку вся тестовая платформа Selenium внутренне использует Java, далее мы будем двигаться дальше и установим набор для разработки Java в наших системах. Рекомендуется использовать JDK версии 6.0 и выше и настраивать/настраивать системные переменные среды для JAVA.

Веб-драйвер селена: . Чтобы автоматизировать системный браузер, нам потребуется установить библиотеку Selenium WebDriver с помощью приведенной ниже команды npm. В большинстве случаев он автоматически устанавливается в наш базовый каталог npm node_modules в качестве зависимости при установке других библиотек.

$ npm install selenium-webdriver

Драйвер браузера: Наконец, необходимо установить драйвер браузера. Это может быть любой браузер, в котором мы хотели бы выполнить тестовые сценарии, и, следовательно, необходимо установить соответствующий драйвер. Этот исполняемый файл необходимо добавить в переменную среды PATH, а также поместить в ту же папку bin. Здесь мы устанавливаем драйвер chrome.

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

Работая над Cucumber.js тестовая платформа?

Теперь, когда мы создали нашу систему для наших Cucumber.js учебное пособие, мы продолжим создание структуры нашего проекта и создадим каталог с именем cucumber_test. Затем мы создадим две подпапки, т.е. feature и step_definition, которые будут содержать соответствующие сценарии, написанные для наших функций и определения шага.

особенности $ mkdir

$ mkdir пошаговые определения

Наконец, в папке будет сгенерированный файл package.json в базовом каталоге пакета и сохранятся все зависимости разработчика для этих модулей. Еще одна важная вещь, которую нужно сделать с файлом package.json, – это добавить атрибут test в параметр scripts.

{
  "scripts": {
    "test": "./node_modules/.bin/cucumber-js"
  }
}

Добавив этот фрагмент в наш файл package.json, мы сможем запускать все ваши тесты cucumber из командной строки, просто введя “npm test” в командной строке. Наша окончательная структура папок проекта выглядит следующим образом.

cucumber_test
        | - - feature
                    | - - feature_test.feature
                  | - - step_definition
                                     | - - steps_def.js
      | - - support
            | - - support.js
        | - - package.json

Ниже приведена процедура работы Cucumber.js проект:

  • Мы начинаем с написания файлов .feature, в которых есть сценарии и каждый из этих сценариев с определенной структурой “когда-тогда”.
  • Затем мы записываем файлы определения шагов, которые обычно определяют функции, соответствующие шагам в наших сценариях.
  • Кроме того, мы реализуем эти функции в соответствии с нашими требованиями или автоматизируем тесты в браузере с помощью драйвера Selenium.
  • Наконец, мы запускаем тесты, выполняя Cucumber.js исполняемый файл, присутствующий в папке node_modules/.bin.

Запуск Нашего Первого Cucumber.js Тестовый сценарий

Следующий шаг в этом Cucumber.js учебное пособие состоит в том, чтобы выполнить образец приложения. Мы начнем с создания каталога проекта с именем cucumber_test, а затем сценария имени подпапки с именем тестового сценария single_test.js внутри него.

Затем мы добавим сценарий с помощью a .файл функций. Который будет подан в нашу заявку в соответствии с нашими инструкциями Cucumber.js для запуска файла функций. Наконец, в Cucumber.js фреймворк проанализирует файл и вызовет код, соответствующий информации в файле функций.

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

Пожалуйста, обратите внимание на файл package.json, который мы будем использовать в наших предстоящих демонстрациях.

Пожалуйста, обратите внимание на файл package.json, который мы будем использовать в наших предстоящих демонстрациях.

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

{
  "name": "Cucumber.js Javascript test with Selenium",
  "version": "1.0.0",
  "description": "CucumberJS Tutorial for Selenium JavaScript Testing",
  "main": "index.js",
  "scripts": {
    "test": "./node_modules/.bin/cucumber-js"
  },
  "repository": {
    "type": "git",
    "url": ""
  },
  "author": "",
  "license": "ISC",
  "description": {
    "url": ""
  },
  "homepage": "",
  "dependencies": {
    "assert": "^1.4.1",
    "chromedriver": "^2.24.1",
    "cucumber": "^1.3.0",
    "geckodriver": "^1.1.3"
  },
  "devDependencies": {
    "selenium-webdriver": "^3.6.0"
  }
}

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

Ниже показано, как выглядит наш файл функций, содержащий заданные сценарии “когда” и “потом”.

Теперь у нас будут наши первые базовые сценарии посещения веб-сайта, определенные в файле функций, за которыми последуют другие сценарии. Эти сценарии будут следовать заданному шаблону “когда-тогда”.

  • Дано: Он задает начальный контекст или предварительные условия.
  • Когда: Это похоже на событие, которое должно произойти в сценарии.
  • Затем: Это ожидаемый результат тестового сценария.

Функция: Функция для проверки определенных действий при посещении веб-сайта Selenium Dev

Сценарий: При посещении домашней страницы selenium.dev Учитывая, что я посетил официальную веб-страницу Selenium на www.selenium.dev Когда на странице есть плитка в качестве автоматизации браузера SeleniumHQ, я должен иметь возможность нажать “Поиск” на боковой панели.

Когда на странице есть плитка в качестве автоматизации браузера SeleniumHQ, я должен иметь возможность нажать “Поиск” на боковой панели.

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

/* This Cucumber.js tutorial file contains the step definition or the description of each of the behavior that is expected from the application */

'use strict';

const { Given, When, Then } = require('cucumber');

const assert = require('assert')

const webdriver = require('selenium-webdriver');

// // The step definitions are defined for each of the scenarios // //

// // The "given" condition for our test scenario // //
Given(/^I have visited the Selenium official web page on "([^"]*)"$/, function (url, next) {

this.driver.get('https://www.selenium.dev').then(next);

  });

// // The "when" condition for our test scenario // //
  When(/^There is a title on the page as "SeleniumHQ Browser Automation" "([^"]*)"$/, function (titleMatch, next) {
    this.driver.getTitle()
      .then(function(title) {
        assert.equal(title, titleMatch, next, 'Expected title to be ' + titleMatch);

// // The "then" condition for our test scenario // //
Then(/^I should be able to click Search in the sidebar $/, function (text, next) {
     this.driver.findElement({ id: 'searchText' }).click();
     this.driver.findElement({ id: 'searchText' }).sendKeys(text).then(next);
  });

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

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

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

// // This Cucumber.js tutorial support file to perform validations and initialization for our app // //


const { setWorldConstructor } = require('cucumber')

const { seleniumWebdriver } = require('selenium-webdriver');

var firefox = require('selenium-webdriver/firefox');

var chrome = require('selenium-webdriver/chrome');

class CustomWorld {
  constructor() {
    this.variable = 0
  }

function CustomWorld() {

  this.driver = new seleniumWebdriver.Builder()
                  .forBrowser('chrome')
                  .build();
}

setWorldConstructor(CustomWorld)

module.exports = function() {

  this.World = CustomWorld;

  this.setDefaultTimeout(30 * 1000);
};

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

Он освобождает драйвер по завершении выполнения теста.

module.exports = function() {
  this.After(function() {
    return this.driver.quit();
  });
};

Наконец, когда мы выполняем тест, мы видим в командной строке, что наш тест успешно выполнен. $ npm тест

Теперь давайте рассмотрим другой пример, который выполнит поисковый запрос в Google и проверит название веб-сайта, чтобы определить, запущен ли правильный веб-сайт в браузере.

Теперь давайте рассмотрим другой пример, который выполнит поисковый запрос в Google и проверит название веб-сайта, чтобы определить, запущен ли правильный веб-сайт в браузере.

Функция: Функция для проверки при посещении веб-сайта поиска Google

Сценарий: Посещение домашней страницы Google.com Учитывая, что я посетил домашнюю страницу Google. Тогда я смогу увидеть Google в строке заголовка

Тогда я смогу увидеть Google в строке заголовка

/* This Cucumber.js Tutorial file contains the step definition or the description of each of the behavior that is expected from the application which in our case is the webpage that we are visiting for selenium javascript testing .*/

var assert = require('assert');

// // This scenario has only "given" and "then" condition defined // //

module.exports = function () {
  this.Given(/^I have visited the Google homepage$/, function() {
    return this.driver.get('http://www.google.com');
  });

  this.Then(/^I should be able to see Google in title bar$/, function() {
    this.driver.getTitle().then(function (title) {
      assert.equal(title, "Google");
      return title;
    });
  });
};

Тогда я смогу увидеть Google в строке заголовка

// This Cucumber.js tutorial support file is used to perform validations and initialization for our application // 

var seleniumWebdriver = require('selenium-webdriver');

var firefox = require('selenium-webdriver/firefox');

var chrome = require('selenium-webdriver/chrome');

function CustomWorld() {

  this.driver = new seleniumWebdriver.Builder()
                  .forBrowser('chrome')
                  .build();
}

module.exports = function() {

  this.World = CustomWorld;

  this.setDefaultTimeout(30 * 1000);
};

Тогда я смогу увидеть Google в строке заголовка

module.exports = function() {
  this.After(function() {
    return this.driver.quit();
  });
};

Опять же, когда мы выполняем тест, мы видим в командной строке, что наш тест выполнен успешно. $ npm тест

Слава! Вы успешно выполнили свой первый Cucumber.js скрипт для автоматизации тестирования Selenium. Однако этот Cucumber.js учебник на этом не заканчивается! Теперь, когда вы знакомы с Селеном и Cucumber.js Я хочу, чтобы вы подумали здесь о проблемах масштабируемости.

До сих пор вы успешно выполняли Cucumber.js сценарий поверх вашей операционной системы. Однако, если вы хотите выполнить автоматическое тестирование браузера, как бы вы протестировали свое веб-приложение в сотнях различных комбинаций браузеров и ОС?

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

Все это может стоить вам денег и времени на поддержание собственной инфраструктуры Selenium. Так что же вы можете сделать?

Вы можете использовать сетку Selenium в облаке. Существуют различные преимущества при выборе облачной сетки Selenium по сравнению с локальной настройкой. Наиболее важным преимуществом является то, что это освобождает вас от хлопот по обслуживанию собственной инфраструктуры Selenium. Это сэкономит вам усилия по установке ненужных виртуальных машин и браузеров и управлению ими. Таким образом, все, на чем вам нужно сосредоточиться, – это запустить сценарии автоматизации тестирования Selenium. Давайте попробуем выполнить наши Cucumber.js скрипт поверх онлайн-сетки Selenium в облаке.

Бегущий Cucumber.js Сценарий Поверх Онлайн-Сетки Selenium

Настало время нам познакомиться с облачной сеткой Selenium, обучившись выполнению тестового сценария на LambdaTest, кроссбраузерном тестировании облаке.

Лямбда-тест позволяет вам протестировать ваш веб-сайт на более чем 2000 комбинациях браузеров и операционных систем, размещенных в облаке. Не только расширяя охват тестированием, но и экономя ваше время на общее выполнение теста.

Чтобы запустить тот же скрипт в сетке Selenium для лямбда-теста, вам нужно всего лишь немного настроить сценарий тестирования Selenium JavaScript. Поскольку теперь вы хотите указать URL-адрес концентратора для удаленного веб-драйвера, который будет выполнять ваш скрипт в нашей сетке Selenium. Добавьте имя пользователя и маркер ключа доступа. Для этого мы должны добавить маркер ключа доступа, а также данные имени пользователя в файлы конфигурации, т.е. cred.conf.js файл, присутствующий в каталоге conf. Имя пользователя и маркер ключа доступа могут быть экспортированы двумя способами, как указано ниже.

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

exports.cred = {
    username: process.env.LT_USERNAME || 'rahulr',
    access_key: process.env.LT_ACCESS_KEY || 'AbcdefgSTAYSAFEhijklmnop'
}

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

export LT_USERNAME=irohitgoyal

export LT_ACCESS_KEY= AbcdefgSTAYSAFEhijklmnop

Далее мы рассмотрим файл функций. Мы будем проводить наш тест в браузере Google Chrome. В нашем тестовом примере мы откроем лямбда-тестовый веб-сайт для выполнения на нем определенных операций, таких как запуск поисковой системы, проверка содержимого и т.д. Итак, наша структура каталогов будет довольно простой, как показано ниже:

Итак, наша структура каталогов будет довольно простой, как показано ниже:

Функция: Google Выполняет поиск по веб-сайту и проверяет наличие определенных действий Сценарий: Выполняю определенные действия на главной странице, когда я посещаю веб-сайт Google на ” https://google.com “ Когда на главной странице есть поле с надписью “Поиск в Google”, Когда на главной странице есть поле с надписью “Мне повезло”, когда я перемещаю курсор и выбираю текстовое поле для поиска в Google Затем нажмите “Поиск в Google” в текстовом поле Затем я должен увидеть заголовок “Google” на главной странице

Теперь нам нужно подумать о наших желаемых возможностях. Мы можем использовать Лямбда-тест Selenium Функция генератора желаемых возможностей для выбора деталей спецификации среды и позволяет нам выбирать из различных предлагаемых ею комбинаций, мы можем использовать ее для выбора комбинации, которую мы хотим выполнить для тестирования Selenium javascript для этого Cucumber.js учебное пособие.

Итак, в нашем тестовом сценарии желаемый класс возможностей будет выглядеть примерно так, как показано ниже:

const desiredCapabilities = {
  'build': 'Cucumber-JS-Selenium-Webdriver-Test', // the build name that is to be display in the test logs
  'browserName': 'chrome', // the browser that we would use to perform test
  'version':'74.0', // the browser version that we would use.
  'platform': 'WIN10', // The type of the Operating System that we would use
  'video': true, // flag to check whether to capture the video selenium javascript testing 
.
  'network': true, // flag to check whether to capture the network logs
  'console': true, // flag to check whether to capture the console logs
  'visual': true // flag to check whether to the capture visual for selenium javascript testing 
};

С помощью этого набора мы теперь рассмотрим определения шагов и огурец runner.js .

С помощью этого набора мы теперь рассмотрим определения шагов и огурец runner.js .

/*
This Cucumber.js tutorial file contains the step definition or the description of each of the behavior that is expected from the application which in our case is the webpage that we are visiting.
It is aligned with the feature file and reads all the instructions from it and finds the matching case to execute it for selenium javascript testing 

.
*/


'use strict';

const assert = require('cucumber-assert');
const webdriver = require('selenium-webdriver');

module.exports = function() {

  this.When(/^I visit website of Google on "([^"]*)"$/, function (url, next) {
    this.driver.get('https://google.com ').then(next);
  });

  this.When(/^the homepage has the field with "Google Search" is present
$/, function (next) {
      this.driver.findElement({ name: 'li1' })
      .click().then(next);
  });

  this.When(/^the homepage has the field with "I'm Feeling Lucky" is present $/, function (next) {
      this.driver.findElement({ name: 'li3' })
      .click().then(next);
  });

  this.When(/^I move the cursor and select the textbox to make a search on Google $/, function (text, next) {
      this.driver.findElement({ id: 'buttonText' }).click();
      this.driver.findElement({ id: 'buttonText' }).sendKeys(text).then(next);
  });

  this.Then(/^click the "Google Search" on the text box "([^"]*)"$/, function (button, next) {
    this.driver.findElement({ id: button }).click().then(next);
  });

  this.Then(/^I must see title "Google" on the homepage "([^"]*)"$/, function (titleMatch, next) {
    this.driver.getTitle()
      .then(function(title) {
        assert.equal(title, titleMatch, next, 'Expected title to be ' + titleMatch);
      });
  });
};

С помощью этого набора мы теперь рассмотрим определения шагов и огурец runner.js .

#!/usr/bin/env/node

//
It resembles our runner file for parallel tests. This file is responsible to create multiple child processes, and  it is equal to the total number of test environments passed for selenium javascript testing 

.
//

let childProcess = require ('child_process') ;
let configFile  = '../conf/' + ( process.env.CONFIG_FILE  || 'single' ) + '.conf.js';
let config = require (configFile ).config;

process.argv[0] = 'node';
process.argv[1] = './node_modules/.bin/cucumber-js';

const getValidJson = function(jkInput) {
    let json = jkInput;
    json = json.replace(/\\n/g, "");
    json = json.replace('\\/g', '');
    return json;
};

let lt_browsers = null;
if(process.env.LT_BROWSERS) {
    let input = getValidJson(process.env.LT_BROWSERS);
    lt_browsers = JSON.parse(input);
}

for( let i in (lt_browsers || config.capabilities) ){
  let env = Object.create( process.env );
  env.TASK_ID = i.toString();
  let p = childProcess.spawn('/usr/bin/env', process.argv, { env: env } ); 
  p.stdout.pipe(process.stdout);
}

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

$ npm тест

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

Ниже приведен пример скриншота:

Не Забывайте Использовать Параллельное Тестирование

Параллельное тестирование с помощью Selenium может помочь вам значительно сократить ваши циклы тестирования. Представьте, что у нас есть по крайней мере 50 тестовых примеров для выполнения, и каждый из них выполняется в среднем 1 минуту. В идеале выполнение набора тестов займет около 50 минут. Но если мы выполним 2 тестовых примера в 2 параллельных параллельных сеансах, общее время тестирования сократится до 25 минут. Следовательно, мы видим резкое сокращение времени тестирования. Для выполнения параллельного тестирования с Selenium для этого Cucumber.js учебное пособие, выполните приведенную ниже команду $ npm выполняется параллельно .

Нижняя линия

Cucumber.js предоставляет нам возможность писать тесты таким образом, чтобы их было легко прочитать каждому. Делает фреймворк очень гибким и позволяет нам создавать понятные для человека описания требований пользователей в качестве основы для тестов веб-приложений. С Cucumber.js мы можем взаимодействовать с нашей веб-страницей в браузере и делать различные утверждения, чтобы убедиться, что выполненные нами изменения действительно отражены в нашем веб-приложении в каждой комбинации браузера и операционной системы, используя Selenium Grid. Тем не менее, есть еще многое, что можно сделать с помощью Cucumber.js . Поскольку эта тестовая платформа разработана поверх интерфейса Selenium, она предоставляет нам безграничные возможности в плане тестирования JavaScript на Selenium. Дайте нам знать, понравилось ли вам это Cucumber.js учебник и если есть какая-то тема, на которую вы хотите, чтобы мы написали. Счастливого тестирования и будьте в безопасности!

Оригинал: “https://dev.to/nategrey/cucumber-js-tutorial-with-examples-for-selenium-javascript-51fe”