Selenium s Cucumber (Výukový program BDD Framework)
V tomto tutoriálu se naučíte, jak se integrovat Cucumber s Selenium Webdriver.
Co je to Cucumber?
Cucumber je testovací přístup, který podporuje vývoj řízený chováním (BDD). Vysvětluje chování aplikace v jednoduchém anglickém textu v jazyce Gherkin.
Více se dozvíte na – https://www.guru99.com/cucumber-tutorials.html
Co je to Selenium?
Selenium je automatizační nástroj pro Funkční testování webové aplikace. Selenium podporuje různé jazyky jako java, ruby, python C# atd.
Více se dozvíte na – https://www.guru99.com/selenium-tutorial.html
Proč používat Cucumber s Selenium?
Cucumber si Selenium jsou dvě populární technologie.
Většina organizací používá Selenium pro funkční testování. Tyto organizace, které používají Selenium, chtějí se integrovat Selenium s Cucumber as Cucumber činí snadno se čte a rozumí toku aplikace.
Cucumber nástroj je založen na Behavior Driven Development framework, který funguje jako most mezi následujícími lidmi:
- Softwarový inženýr a obchodní analytik.
- Ruční tester a tester automatizace.
- Manuální tester a vývojáři.
Cucumber Rámec BDD také má pro klienta výhodu, že rozumí kódu aplikace protože používá jazyk Gherkin, který je v prostém textu. Kdokoli v organizaci může porozumět chování softwaru. Syntaxe Gherkin je v jednoduchém textu, který je čitelný a srozumitelný.
Předpoklad pro použití Cucumber s Selenium
Než začneme Cucumber Selenium integrace, potřebujeme následující položky:
- Selenium soubory jar:
- Selenium-samostatný server
Lze stáhnout na http://www.seleniumhq.org/download/
Jar soubory Pro Cucumber :
- Cucumber-jádro
- Cucumber-html
- pokrytí kódem cobertura
- Cucumber-Jáva
- Cucumber- junit
- Cucumber-jvm-deps
- Cucumber- hlášení
- Hamcrest-core
- kyselá okurka
- Junit
Lze stáhnout na https://mvnrepository.com/search?q=Cucumber
Musíte vyhledávat soubory a stahovat je jeden po druhém jednotlivě.
Ukážeme vám například stažení jednoho ze souborů jar, tj.Cucumber-jádro."
Klikněte na výše uvedený odkaz ke stažení. Přesměruje na níže uvedený web. Nyní vyhledejte konkrétní nádobu, tj.Cucumber Core', jak je znázorněno na snímku obrazovky níže:
Na další stránce klikněte na verzi 1.2.2,
Na další obrazovce klikněte na stáhnout a získejte 'Cucumber Core' jar soubor.
Hodnocení: Pro vaši jednoduchost jsme přibalili soubory jar, které je třeba stáhnout z Maven zde. Časem se tyto sklenice mohou aktualizovat a stát se nekompatibilními. Jste požádáni, abyste si je stáhli výše uvedeným způsobem.
Použití automatizace testování Cucumber s Selenium.
Pojďme si prostudovat kroky k použití Cucumber se selenem krok za krokem. Zde pokryjeme 3 scénáře:
- Scénář 1: Tisk textu v konzole.
- Scénář 2: Zadejte přihlašovací údaje a resetujte hodnotu.
- Scénář 3: Zadejte přihlašovací údaje na Guru99 a resetujte hodnotu. Udělejte to pro 3 sady dat.
Scénář 1: Tisk textu v konzole.
V tomto scénáři pouze vytiskneme text v konzole pomocí Cucumber.
Krok 1) Vytvořte projekt v Eclipse.
Vytvořit Java projekt s názvem "CucumberSSelenium“, jak je znázorněno na níže uvedeném snímku obrazovky.
Krok 2) Přidání souborů Jar do projektu.
Klikněte pravým tlačítkem na projekt > Vybrat vlastnosti > Přejít Java Vytvořit cestu. Přidejte všechny dříve stažené knihovny.
Krok 3) Vytváření souboru funkcí
Chcete-li vytvořit soubor funkcí, nejprve vytvořte složku funkcí, jak je znázorněno na obrázku níže.
Nyní zadejte název složky 'Features' a klikněte na tlačítko 'Finish'.
Nyní vytvořte soubor funkce ve složce „Features“ s názvem „MyTest.feature“ – proces je podobný vytvoření složky
Poznámka: Možná budete muset nainstalovat Cucumber Eclipse Plugin, aby to fungovalo. Přejít — Nápověda->Instalovat nový software->kopírovat a vložit odkaz http://cucumber.github.io/cucumber-eclipse/update-site/ a nainstalujte
Krok 4) Pište scénáře.
Níže uvedené řádky jsou zapsány v souboru 'MyTest.feature' pomocí jazyka Gherkin, jak je uvedeno níže:
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
Vysvětlení kódu
řádek 1) V tomto řádku píšeme obchodní funkcionalitu.
řádek 2) V tomto řádku napíšeme scénář k testování.
řádek 3) V tomto řádku definujeme předběžnou podmínku.
řádek 4) V tomto řádku definujeme akci, kterou musíme provést.
řádek 4) V tomto řádku definujeme očekávaný výsledek nebo výsledek.
Krok 5) Psaní selenového testovacího skriptu pro Selenium Cucumber rámcový design
Zde vytvoříme balíček 'TestRunner' a pod ním soubor třídy '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
{
}
Ve výše uvedeném Cucumber Java příklad kódu spustíme okurkový test pomocí následujících poznámek:
@RunWith() anotace říká, že třída testovacích běžců začne provádět naše testy.
@CucmberOptions() anotace se používá k nastavení některých vlastností pro náš okurkový test, jako je soubor prvků, definice kroku atd.
Snímek obrazovky souboru TestRunner.
Krok 6) Vytvoření skriptu definice kroku.
Nyní zde vytvoříme balíček 'StepDefinition' a pod ním soubor skriptu 'Steps.java'. Zde ve skutečnosti píšeme selenový skript, pod kterým provedeme test Cucumber metody.
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.");
}
}
Ve výše uvedeném kódu je třída vytvořena s názvem 'Kroky.' Cucumber anotace se používá k mapování se souborem prvků. Každá metoda anotace je definována:
@Given anotace definujte způsob otevření firefoxu a spuštění aplikace
@Když anotace definujte způsob zadání uživatelského jména a hesla
@Pak anotace definujte metodu resetování pověření
U každé metody tiskneme pouze zprávu.
Níže je snímek obrazovky skriptu 'Steps.java' a stromu projektu, jak to vypadá.
Poznámka: Definice kroku není nic jiného než kroky, které chcete v rámci této okurkové metody provést.
Krok 7) Provádění skriptu.
Uživatel může spustit tento skript ze skriptu testovacího běžce, tj. 'Runner.java', jak je znázorněno na obrázku níže.
Krok 8) Analyzujte výstup.
Při spuštění skriptu 'Runner.java' zobrazí text na konzole. Je to stejný text definovaný ve skriptu 'Steps.java'.
Scénář 2: Zadejte přihlašovací údaje a resetujte hodnotu.
Zde pouze zadáme Credential na přihlašovací stránce ukázky Guru99 a resetujeme hodnotu
Pro scénář 2 potřebujeme aktualizovat pouze skript 'Steps.java'. Zde ve skutečnosti píšeme selenový skript, jak je uvedeno níže. Nejprve musíme přidat Selenium jar do tohoto projektu.
Krok 1) Zde aktualizujeme skript 'Steps.java', jak je znázorněno na níže uvedeném kódu a snímku obrazovky.
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();
}
}
Snímek obrazovky výše uvedeného selenového skriptu.
Krok 2) Spusťte skript.
Po aktualizaci spustíme Runner.java.
Krok 3) Analyzujte výstup.
Ve výstupu můžete vidět následující:
- Prohlížeč spuštěn.
- Otevře se demo stránka banky Guru99.
- Uživatelské jméno a heslo jsou umístěny na přihlašovací stránce.
- Resetujte hodnoty.
Scénář 3: Zadejte přihlašovací údaje na Guru99 a resetujte hodnotu. Udělejte to pro 3 sady dat.
Zde musíme aktualizovat jak 'Step.java', tak soubor funkcí.
Krok 1) Aktualizujte soubor funkcí, jak je uvedeno níže:
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.
Krok 2) Nyní aktualizujte skript Step.java.
Zde aktualizujeme metody pro předávání parametrů, aktualizovaný skript uvedený níže:
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();
}
}
Krok 3) Nyní spusťte aktualizovaný skript.
Níže uvedená obrazovka ukazuje úspěšné provedení skriptu a čas potřebný pro každou sadu dat.
Krok 4) Analyzujte výstup.
Ve výstupu můžete vidět následující:
Níže uvedený výstup se opakuje pro počet datových sad, tj. 3 sady.
- Prohlížeč spuštěn.
- Otevře se demo stránka banky Guru99.
- Uživatelské jméno a heslo jsou umístěny na přihlašovací stránce.
- Resetujte hodnoty.
Proč investovat do čističky vzduchu?
Cucumber je velmi populární nástroj BDD. Je snadno čitelný a může být srozumitelný všem zúčastněným stranám, včetně technických i netechnických osob.
Cucumber lze integrovat s Selenium pomocí následujících 3 kroků
- Vytvořte soubor prvku, ve kterém definujte prvek a scénáře krok za krokem pomocí jazyka Gherkin.
- Vytvořte soubor Testrunner. V tomto souboru jsme integrovali Cucumber se zabudovaným rámcem BDD Selenium. Spustíme tento skript.
- Vytvořit definici kroku, skutečný selenový skript definovaný v tomto balíčku.























