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-core
  • Cucumber-html
  • кодово покритие на cobertura
  • Cucumber-ява
  • Cucumber-юнит
  • Cucumber-jvm-deps
  • Cucumber-отчитане
  • Hamcrest-core
  • малка руска краставичка
  • Джунит

Може да се изтегли от 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 файлове в проекта.

Щракнете с десния бутон върху проекта > Изберете Properties > Go to Java Път за изграждане. Добавете всички библиотеки, изтеглени по-рано.

Използване на автоматизирано тестване Cucumber с Selenium

Стъпка 3) Създаване на файл с функции

За да създадете файл с функции, първо създайте папка с функции, както е показано на екранната снимка по-долу.

Използване на автоматизирано тестване Cucumber с Selenium

Сега въведете името на папката „Features“ и щракнете върху бутона „Finish“.

Използване на автоматизирано тестване Cucumber с Selenium

Използване на автоматизирано тестване Cucumber с Selenium

Сега създайте файл с функции в папката „Features“ с името „MyTest.feature“ – Процесът е подобен на създаването на папка

Използване на автоматизирано тестване Cucumber с Selenium

Забележка: Може да се наложи да инсталирате Cucumber Eclipse Плъгин, за да работи това. Goto — Помага->Инсталиране на нов софтуер->копиране и поставяне на връзката 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 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“ под него. Тук всъщност пишем селен скрипт, за да извършим теста 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 анотацията се използва за картографиране с файл с функции. Всеки метод на анотация е дефиниран:

@Дадено анотация дефиниране на метод за отваряне на firefox и стартиране на приложението

@Кога анотация дефиниране на метод за въвеждане на потребителско име и парола

@Тогава анотация дефиниране на метод за нулиране на идентификационните данни

При всеки метод ние отпечатваме само съобщение.

По-долу е екранната снимка на скрипта „Steps.java“ и дървото на проекта, как изглежда.

Използване на автоматизирано тестване Cucumber с Selenium

Забележка: Дефинирането на стъпка не е нищо друго освен стъпките, които искате да изпълните при този метод на краставицата.

Стъпка 7) Изпълнение на скрипта.

Потребителят може да изпълни този скрипт от тестовия скрипт, т.е. „Runner.java“, както е показано на екранната снимка по-долу.

Използване на автоматизирано тестване Cucumber с Selenium

Стъпка 8) Анализирайте изхода.

При изпълнение на скрипта "Runner.java" той показва текста на конзолата. Това е същият текст, дефиниран в скрипта „Steps.java“.

Използване на автоматизирано тестване Cucumber с Selenium

Сценарий 2: Въведете идентификационни данни за вход и нулирайте стойността.

Тук просто ще въведем идентификационни данни на демонстрационната страница за вход на Guru99 и ще нулираме стойността

За сценарий 2 трябва да актуализираме само скрипта „Steps.java“. Тук всъщност пишем селен скрипта, както е показано по-долу. Първо, трябва да добавим 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. Създайте дефиниция на стъпка, действителният селен скрипт, дефиниран в този пакет.

Обобщете тази публикация с: