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 инструментът се основава на рамката за развитие, управлявано от поведението, която действа като мост между следните хора:
- Софтуерен инженер и бизнес анализатор.
- Ръчен тестер и тестер за автоматизация.
- Ръчен тестер и разработчици.
Cucumber BDD рамка също помага на клиента да разбере кода на приложението тъй като използва език Gherkin, който е в обикновен текст. Всеки в организацията може да разбере поведението на софтуера. Синтаксисът на Gherkin е в прост текст, който е четим и разбираем.
Предпоставка за използване Cucumber с Selenium
Преди да започнем Cucumber Selenium интеграция, имаме нужда от следните елементи:
- Selenium jar файлове:
- Selenium-сървър-самостоятелен
Може да се изтегли от http://www.seleniumhq.org/download/
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", както е показано на екранната снимка по-долу:
На следващата страница щракнете върху версия 1.2.2,
В следващия екран щракнете върху изтегляне, за да получите „Cucumber Core' jar файл.
Забележка: За ваше улеснение сме събрали jar файловете, необходими за изтегляне от Maven тук. С времето тези буркани може да се актуализират и да станат несъвместими. От вас се иска да ги изтеглите, като използвате метода, илюстриран по-горе.
Използване на автоматизирано тестване Cucumber с Selenium.
Нека проучим стъпките за използване Cucumber със селен стъпка по стъпка. Тук ще разгледаме 3 сценария:
- Сценарий 1: Отпечатайте текст в конзолата.
- Сценарий 2: Въведете идентификационни данни за вход и нулирайте стойността.
- Сценарий 3: Въведете идентификационни данни за вход на Guru99 и нулирайте стойността. Направете това за 3 набора от данни.
Сценарий 1: Отпечатайте текст в конзолата.
В този сценарий ние просто отпечатваме текста в конзолата, като използваме Cucumber.
Стъпка 1) Създайте проект в eclipse.
Създаване на Java проект с името „CucumberсSelenium”, както е показано на екранната снимка по-долу.
Стъпка 2) Добавяне на Jar файлове в проекта.
Щракнете с десния бутон върху проекта > Изберете Properties > Go to Java Път за изграждане. Добавете всички библиотеки, изтеглени по-рано.
Стъпка 3) Създаване на файл с функции
За да създадете файл с функции, първо създайте папка с функции, както е показано на екранната снимка по-долу.
Сега въведете името на папката „Features“ и щракнете върху бутона „Finish“.
Сега създайте файл с функции в папката „Features“ с името „MyTest.feature“ – Процесът е подобен на създаването на папка
Забележка: Може да се наложи да инсталирате 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.
Стъпка 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“ и дървото на проекта, как изглежда.
Забележка: Дефинирането на стъпка не е нищо друго освен стъпките, които искате да изпълните при този метод на краставицата.
Стъпка 7) Изпълнение на скрипта.
Потребителят може да изпълни този скрипт от тестовия скрипт, т.е. „Runner.java“, както е показано на екранната снимка по-долу.
Стъпка 8) Анализирайте изхода.
При изпълнение на скрипта "Runner.java" той показва текста на конзолата. Това е същият текст, дефиниран в скрипта „Steps.java“.
Сценарий 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 стъпки
- Създайте файл с функции, в който дефинирайте функцията и сценариите стъпка по стъпка, като използвате езика Gherkin.
- Създайте файл Testrunner. В този файл ние интегрирахме Cucumber с BDD рамка в Selenium. Ние изпълняваме този скрипт.
- Създайте дефиниция на стъпка, действителният селен скрипт, дефиниран в този пакет.























