Selenium Cucumber (Учебное пособие по фреймворку BDD)


В этом уроке вы узнаете, как интегрировать Cucumber Selenium Вебдрайвер.

Что такое Cucumber?

Cucumber — это подход к тестированию, который поддерживает разработку на основе поведения (BDD). Он объясняет поведение приложения простым текстом на английском языке с использованием языка Gherkin.

Узнайте больше на - https://www.guru99.com/cucumber-tutorials.html

Что такое Selenium?

Selenium это инструмент автоматизации для Функциональное тестирование веб-приложения. Selenium поддерживает разные языки, такие как Java, Ruby, Python C# и т. д.

Узнайте больше на - https://www.guru99.com/selenium-tutorial.html

Зачем использовать Cucumber Selenium?

Cucumber и Selenium две популярные технологии.

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

Cucumber инструмент основан на платформе Behavior Driven Development, которая действует как мост между следующими людьми:

  1. Инженер-программист и бизнес-аналитик.
  2. Ручной тестер и автоматический тестер.
  3. Ручной тестер и разработчики.

Cucumber BDD-фреймворк также помогает клиенту понять код приложения поскольку он использует язык Gherkin, который представлен в виде обычного текста. Любой сотрудник организации может понять поведение программного обеспечения. Синтаксис Gherkin представлен простым текстом, который легко читается и понятен.

Cucumber   Selenium

Обязательное условие для использования Cucumber Selenium

Прежде чем мы приступим Cucumber Selenium Для интеграции нам понадобятся следующие элементы:

  • Selenium jar-файлы:
  • Selenium-сервер-автономный

Можно скачать на http://www.seleniumhq.org/download/

Предварительное условие для использования Cucumber   Selenium

Jar-файлы для Cucumber :

  • Cucumber-core
  • Cucumber-html
  • покрытие кода кобертуры
  • Cucumber-Ява
  • Cucumber-юнит
  • Cucumber-jvm-deps
  • Cucumber-составление отчетов
  • Hamcrest-ядро
  • корнишон
  • Юнит

Можно скачать на https://mvnrepository.com/search?q=Cucumber

Вам нужно искать файлы и загружать их один за другим по отдельности.

Например, мы покажем вам, как загрузить один из jar-файлов, например: «Cucumber-основной."

Нажмите на ссылку для скачивания выше. Он перенаправляет на сайт ниже. Теперь найдите конкретную банку, т.е.Cucumber Core», как показано на скриншоте ниже:

Предварительное условие для использования Cucumber   Selenium

На следующей странице нажмите версию 1.2.2,

Предварительное условие для использования Cucumber   Selenium

На следующем экране нажмите «Загрузить», чтобы получить «Cucumber Core' jar-файл.

Предварительное условие для использования Cucumber   Selenium

Внимание: Для вашего удобства мы включили файлы jar, необходимые для загрузки из Maven. здесь. Со временем эти банки могут обновиться и стать несовместимыми. Вам предлагается загрузить их, используя метод, показанный выше.

Автоматизация тестирования с использованием Cucumber Selenium.

Давайте изучим шаги по использованию Cucumber с селеном шаг за шагом. Здесь мы рассмотрим 3 сценария:

  • Сценарий 1. Печать текста в консоли.
  • Сценарий 2. Введите учетные данные для входа и сбросьте значение.
  • Сценарий 3. Введите учетные данные для входа в Guru99 и сбросьте значение. Сделайте это для 3 наборов данных.

Сценарий 1. Печать текста в консоли.

В этом сценарии мы просто печатаем текст в консоли, используя Cucumber.

Шаг 1) Создать проект в Eclipse.

Создавай Java проект с названием «CucumberДля пользователя Selenium», как показано на скриншоте ниже.

Автоматизация тестирования с использованием Cucumber   Selenium

Автоматизация тестирования с использованием Cucumber   Selenium

Шаг 2) Добавление Jar-файлов в проект.

Щелкните правой кнопкой мыши проект> выберите «Свойства»> «Перейти к». Java Путь сборки. Добавьте все библиотеки, скачанные ранее.

Автоматизация тестирования с использованием Cucumber   Selenium

Шаг 3) Создание файла объекта

Для создания файла функций сначала создайте папку функций, как показано на снимке экрана ниже.

Автоматизация тестирования с использованием Cucumber   Selenium

Теперь введите имя папки «Функции» и нажмите кнопку «Готово».

Автоматизация тестирования с использованием Cucumber   Selenium

Автоматизация тестирования с использованием Cucumber   Selenium

Теперь создайте файл функции в папке «Функции» с именем «MyTest.feature». Процесс аналогичен созданию папки.

Автоматизация тестирования с использованием Cucumber   Selenium

Примечание: Возможно, вам придется установить Cucumber Eclipse Плагин, чтобы это работало. Перейти к — Помощь->Установить новое программное обеспечение->скопировать и вставить ссылку. http://cucumber.github.io/cucumber-eclipse/update-site/ и установить

Шаг 4) Пишите сценарии.

Нижеприведенные строки записаны в файле MyTest.feature с использованием языка Gherkin, как показано ниже:

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

Код Пояснение

Строка 1) В этой строке мы пишем бизнес-функциональность.

Строка 2) В этой строке мы пишем сценарий для тестирования.

Строка 3) В этой строке мы определяем предварительное условие.

Строка 4) В этой строке мы определяем действие, которое нам нужно выполнить.

Строка 4) В этой строке мы определяем ожидаемый результат или результат.

Шаг 5) Написание скрипта selenium testrunner для Selenium Cucumber конструкция каркаса

Здесь мы создаем пакет TestRunner, а затем файл класса Runner.java под ним.

package TestRunner;		

import org.junit.runner.RunWith;		
import cucumber.api.CucumberOptions;		
import cucumber.api.junit.Cucumber;		

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

В выше Cucumber Java пример кода, мы запускаем огуречный тест используя следующие аннотации:

@Бежать с() аннотация сообщает о классе запуска тестов, с помощью которого можно начать выполнение наших тестов.

@CucmberOptions() аннотация используется для установки некоторых свойств нашего теста огурца, таких как файл объекта, определение шага и т. д.

Скриншот файла TestRunner.

Автоматизация тестирования с использованием Cucumber   Selenium

Шаг 6) Создание сценария определения шага.

Теперь здесь мы создаем пакет 'StepDefinition', а затем файл скрипта 'Steps.java' в нем. Здесь мы фактически пишем скрипт selenium для выполнения теста в Cucumber методы.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

В приведенном выше коде класс создается с именем Steps. Cucumber аннотация используется для сопоставления с файлом объекта. Каждый метод аннотации определяется:

@Данный аннотация определяет метод открытия Firefox и запуска приложения

@Когда аннотация определяет метод для ввода имени пользователя и пароля

@Затем аннотация определяет метод для сброса учетных данных

В каждом методе мы только печатаем сообщение.

Ниже приведен скриншот скрипта Steps.java и дерева проекта, как оно выглядит.

Автоматизация тестирования с использованием Cucumber   Selenium

Примечание: Определение шага — это не что иное, как шаги, которые вы хотите выполнить в рамках этого метода огурца.

Шаг 7) Выполнение сценария.

Пользователь может выполнить этот сценарий из сценария запуска тестов, т. е. «Runner.java», как показано на снимке экрана ниже.

Автоматизация тестирования с использованием Cucumber   Selenium

Шаг 8) Проанализируйте результат.

При выполнении сценария Runner.java он отображает текст на консоли. Это тот же текст, что и в скрипте Steps.java.

Автоматизация тестирования с использованием Cucumber   Selenium

Сценарий 2. Введите учетные данные для входа и сбросьте значение.

Здесь мы просто введем учетные данные на демонстрационной странице входа Guru99 и сбросим значение.

Для сценария 2 нам нужно обновить только скрипт 'Steps.java'. Здесь мы фактически пишем скрипт selenium, как показано ниже. Сначала нам нужно добавить Selenium jar-файл в этот проект.

Введите учетные данные для входа и сбросьте значение.

Шаг 1) Здесь мы обновляем скрипт Steps.java, как показано в коде и на снимке экрана ниже.

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Скриншот приведенного выше сценария селена.

Введите учетные данные для входа и сбросьте значение.

Шаг 2) Выполните сценарий.

После обновления запускаем Runner.java.

Шаг 3) Проанализируйте результат.

В выводе вы можете увидеть следующее:

  • Браузер запущен.
  • Открыт демо-сайт банка Guru99.
  • Имя пользователя и пароль размещены на странице входа.
  • Сбросьте значения.

Введите учетные данные для входа и сбросьте значение.

Сценарий 3. Введите учетные данные для входа в Guru99 и сбросьте значение. Сделайте это для 3 наборов данных.

Здесь нам нужно обновить как «Step.java», так и файл функции.

Шаг 1) Обновите файл объекта, как показано ниже:

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

Введите учетные данные для входа

Шаг 2) Теперь обновите скрипт Step.java.

Здесь мы обновляем методы для передачи параметров, обновленный скрипт показан ниже:

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Введите учетные данные для входа

Шаг 3) Теперь выполните обновленный скрипт.

На экране ниже показано успешное выполнение сценария и время, затраченное на обработку каждого набора данных.

Введите учетные данные для входа

Шаг 4) Проанализируйте результат.

В выводе вы можете увидеть следующее:

Вывод ниже повторяется для количества наборов данных, т. е. 3 наборов.

  • Браузер запущен.
  • Открыт демо-сайт банка Guru99.
  • Имя пользователя и пароль размещены на странице входа.
  • Сбросьте значения.

Введите учетные данные для входа

Заключение

Cucumber — очень популярный инструмент BDD. Его легко читать, и он может быть понятен всем заинтересованным сторонам, включая технических и нетехнических специалистов.

Cucumber может быть интегрирован с Selenium используя следующие 3 шага

  1. Создайте файл функции, в котором шаг за шагом определите функцию и сценарии, используя язык Gherkin.
  2. Создайте файл Testrunner. В этот файл мы интегрировали Cucumber с фреймворком BDD в Selenium. Выполняем этот скрипт.
  3. Определение шага создания — фактический сценарий Selenium, определенный в этом пакете.