Selenium з Cucumber (Навчальний посібник з BDD Framework)


У цьому посібнику ви дізнаєтесь, як інтегрувати 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 Інструмент базується на структурі розвитку, орієнтованої на поведінку, яка виконує роль мосту між такими людьми:

  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- ядро
  • Cucumber-html
  • покриття коду cobertura
  • Cucumber-ява
  • Cucumber-юніт
  • Cucumber-jvm-deps
  • Cucumber-звітування
  • Хамкрест-ядро
  • Ґеркін
  • Юніт

Можна завантажити на https://mvnrepository.com/search?q=Cucumber

Потрібно шукати файли та завантажувати їх по одному окремо.

Наприклад, ми покажемо вам завантажити один із файлів jar, тобто «Cucumber-ядро.»

Натисніть посилання для завантаження вище. Він перенаправляє на наведений нижче сайт. Тепер знайдіть певну банку, тобто 'Cucumber Core", як показано на знімку екрана нижче:

Необхідна умова для використання Cucumber з Selenium

На наступній сторінці натисніть версію 1.2.2,

Необхідна умова для використання Cucumber з Selenium

На наступному екрані натисніть «Завантажити», щоб отримати «Cucumber Ядро файлу 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

Тепер введіть назву папки «Features» і натисніть кнопку «Finish».

Автоматизація тестування за допомогою Cucumber з Selenium

Автоматизація тестування за допомогою Cucumber з Selenium

Тепер створіть файл функцій у папці «Features» з назвою «MyTest.feature» – процес подібний до створення папки

Автоматизація тестування за допомогою Cucumber з Selenium

Примітка: Можливо, вам знадобиться встановити Cucumber Eclipse Плагін для роботи. Goto — Helps->Install New Software->copy paste посилання 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 приклад коду, ми запускаємо огірковий тест використовуючи такі анотації:

@RunWith() анотація розповідає про клас запуску тестів, щоб почати виконання наших тестів.

@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.");					
    }		

}

У наведеному вище коді створено клас із назвою «Кроки». Cucumber анотація використовується для зіставлення з файлом функцій. Кожен метод анотації визначено:

@Given анотація визначає метод відкриття 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();					
    }		
}		

Знімок екрана наведеного вище сценарію selenium.

Введіть облікові дані для входу та скиньте значення

Крок 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. Створіть визначення Step, фактичний сценарій selenium, визначений у цьому пакеті.

Детальніше ЧИТАТИ