Selenium s Cucumber (BDD okvir)


U ovom ćete vodiču naučiti kako integrirati Cucumber s Selenium Webdriver.

Što je Cucumber?

Cucumber je pristup testiranju koji podržava razvoj vođen ponašanjem (BDD). Objašnjava ponašanje aplikacije u jednostavnom engleskom tekstu koristeći Gherkin jezik.

Saznajte više na – https://www.guru99.com/cucumber-tutorials.html

Što je Selenium?

Selenium je alat za automatizaciju Funkcionalno ispitivanje web aplikacije. Selenium podržava različite jezike kao što su java, ruby, python C#, itd.

Saznajte više na – https://www.guru99.com/selenium-tutorial.html

Zašto koristiti Cucumber s Selenium?

Cucumber i Selenium su dvije popularne tehnologije.

Većina organizacija koristi Selenium za funkcionalno ispitivanje. Ove organizacije koje koriste Selenium, žele se integrirati Selenium s Cucumber as Cucumber čini lako je čitati i razumjeti tok aplikacije.

Cucumber alat se temelji na okviru za razvoj vođen ponašanjem koji djeluje kao most između sljedećih osoba:

  1. Softverski inženjer i poslovni analitičar.
  2. Ručni tester i automatizirani tester.
  3. Ručni tester i programeri.

Cucumber BDD okvir također pomaže klijentu da razumije kod aplikacije jer koristi Gherkin jezik koji je u običnom tekstu. Svatko u organizaciji može razumjeti ponašanje softvera. Sintaksa Gherkina je u jednostavnom tekstu koji je čitljiv i razumljiv.

Cucumber s Selenium

Preduvjet za korištenje Cucumber s Selenium

Prije nego krenemo Cucumber Selenium integracije, trebamo sljedeće stavke:

  • Selenium jar datoteke:
  • Selenium-poslužitelj-samostalni

Može se preuzeti na http://www.seleniumhq.org/download/

Preduvjet za korištenje Cucumber s Selenium

Jar datoteke za Cucumber :

  • Cucumber-rezultat
  • Cucumber-html
  • pokrivenost koda cobertura
  • Cucumber-Java
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-izvještavanje
  • Hamcrest-core
  • Gherkin
  • Junit

Može se preuzeti na https://mvnrepository.com/search?q=Cucumber

Morate pretražiti datoteke i preuzeti ih jednu po jednu pojedinačno.

Na primjer, pokazat ćemo vam da preuzmete jednu od jar datoteka, tj. “Cucumber-jezgra."

Kliknite na gornju vezu za preuzimanje. Preusmjerava na donju stranicu. Sada pretražite određenu staklenku, tj. 'Cucumber Core' kao što je prikazano na slici ispod:

Preduvjet za korištenje Cucumber s Selenium

Na sljedećoj stranici kliknite na verziju 1.2.2,

Preduvjet za korištenje Cucumber s Selenium

Na sljedećem ekranu kliknite na preuzimanje da biste dobili 'Cucumber Core' jar datoteka.

Preduvjet za korištenje Cucumber s Selenium

bilješke: Radi vaše jednostavnosti, grupirali smo jar datoteke potrebne za preuzimanje s Mavena ovdje. S vremenom se te staklenke mogu ažurirati i postati nekompatibilne. Od vas se traži da ih preuzmete koristeći metodu prikazanu gore.

Automatizirano testiranje pomoću Cucumber s Selenium.

Proučimo korake za korištenje Cucumber sa selenom korak po korak. Ovdje ćemo pokriti 3 scenarija:

  • Scenarij 1: Ispis teksta u konzoli.
  • Scenarij 2: Unesite vjerodajnicu za prijavu i poništite vrijednost.
  • Scenarij 3: Unesite vjerodajnicu za prijavu na Guru99 i poništite vrijednost. Učinite to za 3 skupa podataka.

Scenarij 1: Ispis teksta u konzoli.

U ovom scenariju samo ispisujemo tekst u konzoli koristeći Cucumber.

Korak 1) Stvorite projekt u eclipseu.

stvoriti Java projekt pod imenom “CucumberKontaktSelenium” kao što je prikazano na slici ispod.

Automatizirano testiranje pomoću Cucumber s Selenium

Automatizirano testiranje pomoću Cucumber s Selenium

Korak 2) Dodavanje Jar datoteka u projekt.

Desni klik na projekt > Odaberite Svojstva > Idi na Java Put izgradnje. Dodajte sve ranije preuzete biblioteke.

Automatizirano testiranje pomoću Cucumber s Selenium

Korak 3) Stvaranje datoteke značajki

Za stvaranje datoteke sa značajkama prvo stvorite mapu sa značajkama kao što je prikazano na slici ispod.

Automatizirano testiranje pomoću Cucumber s Selenium

Sada unesite naziv mape 'Features' i kliknite na gumb 'Finish'.

Automatizirano testiranje pomoću Cucumber s Selenium

Automatizirano testiranje pomoću Cucumber s Selenium

Sada stvorite datoteku značajki u mapi 'Features' s nazivom "MyTest.feature" – proces je sličan stvaranju mape

Automatizirano testiranje pomoću Cucumber s Selenium

Bilješka: Možda ćete morati instalirati Cucumber Eclipse Dodatak za ovo radi. Idi na — Pomaže->Instaliraj novi softver->kopiraj i zalijepi vezu http://cucumber.github.io/cucumber-eclipse/update-site/ i instalirajte

Korak 4) Napišite scenarije.

Donji redovi napisani su u datoteci 'MyTest.feature' koristeći Gherkin jezik kao što je prikazano u nastavku:

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			

Objašnjenje koda

Linija 1) U ovom retku pišemo poslovnu funkcionalnost.

Linija 2) U ovom retku pišemo scenarij za testiranje.

Linija 3) U ovom retku definiramo preduvjet.

Linija 4) U ovom retku definiramo radnju koju trebamo izvršiti.

Linija 4) U ovom retku definiramo očekivani ishod ili rezultat.

Korak 5) Pisanje selenium testrunner skripte za Selenium Cucumber dizajn okvira

Ovdje stvaramo paket 'TestRunner', a zatim datoteku klase 'Runner.java' ispod njega.

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 				
{		

}

U gore navedenom Cucumber Java primjer koda, pokrećemo test krastavca korištenjem sljedećih napomena:

@RunWith() annotation govori o klasi pokretača testa za početak izvršavanja naših testova.

@CucmberOptions() anotacija se koristi za postavljanje nekih svojstava za naš test krastavaca kao što je datoteka značajki, definicija koraka itd.

Snimka zaslona datoteke TestRunner.

Automatizirano testiranje pomoću Cucumber s Selenium

Korak 6) Stvaranje skripte za definiranje koraka.

Sada ovdje stvaramo paket 'StepDefinition', a zatim datoteku skripte 'Steps.java' ispod njega. Ovdje zapravo pišemo selenium skriptu za provođenje testa Cucumber metode.

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

}

U gornjem kodu, klasa je stvorena pod nazivom "Koraci". Cucumber anotacija se koristi za mapiranje s datotekom značajki. Svaka metoda označavanja je definirana:

@Dano napomena definira metodu za otvaranje firefoxa i pokretanje aplikacije

@Kada annotation definirajte metodu za unos korisničkog imena i lozinke

@Zatim annotation definirajte metodu za ponovno postavljanje vjerodajnice

Pod svakom metodom ispisujemo samo poruku.

Ispod je snimak zaslona 'Steps.java' skripte i stabla projekta, kako to izgleda.

Automatizirano testiranje pomoću Cucumber s Selenium

Bilješka: Definicija koraka nije ništa drugo doli koraci koje želite izvesti ovom metodom krastavaca.

Korak 7) Izvršavanje skripte.

Korisnik može izvršiti ovu skriptu iz Test runner skripte, tj. 'Runner.java' kao što je prikazano na slici ispod.

Automatizirano testiranje pomoću Cucumber s Selenium

Korak 8) Analizirajte izlaz.

Prilikom izvršavanja skripte 'Runner.java', ona prikazuje tekst na konzoli. To je isti tekst definiran u skripti 'Steps.java'.

Automatizirano testiranje pomoću Cucumber s Selenium

Scenarij 2: Unesite vjerodajnicu za prijavu i poništite vrijednost.

Ovdje ćemo samo unijeti vjerodajnicu na Guru99 demo stranicu za prijavu i poništiti vrijednost

Za Scenarij 2 trebamo ažurirati samo skriptu 'Steps.java'. Ovdje zapravo pišemo selenium skriptu kao što je prikazano u koracima ispod. Prvo, moramo dodati Selenium jar datoteku u ovaj projekt.

Unesite vjerodajnicu za prijavu i poništite vrijednost

Korak 1) Ovdje ažuriramo skriptu 'Steps.java' kao što je prikazano u donjem kodu i snimci zaslona.

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();					
    }		
}		

Snimka zaslona gornje selenium skripte.

Unesite vjerodajnicu za prijavu i poništite vrijednost

Korak 2) Izvršite skriptu.

Nakon ažuriranja pokrećemo Runner.java.

Korak 3) Analizirajte izlaz.

U izlazu možete vidjeti sljedeće:

  • Preglednik pokrenut.
  • Otvara se demo stranica banke Guru99.
  • Korisničko ime i lozinka nalaze se na stranici za prijavu.
  • Ponovno postavite vrijednosti.

Unesite vjerodajnicu za prijavu i poništite vrijednost

Scenarij 3: Unesite vjerodajnicu za prijavu na Guru99 i poništite vrijednost. Učinite to za 3 skupa podataka.

Ovdje moramo ažurirati i 'Step.java' i datoteku značajke.

Korak 1) Ažurirajte datoteku značajki kao što je prikazano u nastavku:

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.

Unesite vjerodajnicu za prijavu

Korak 2) Sada ažurirajte Step.java skriptu.

Ovdje ažuriramo metode za prosljeđivanje parametara, ažuriranu skriptu prikazanu u nastavku:

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();					
    }		
}		

Unesite vjerodajnicu za prijavu

Korak 3) Sada izvršite ažuriranu skriptu.

Zaslon ispod prikazuje uspješno izvršenje skripte i vrijeme potrebno svakom skupu podataka.

Unesite vjerodajnicu za prijavu

Korak 4) Analizirajte izlaz.

U izlazu možete vidjeti sljedeće:

Donji izlaz se ponavlja za broj skupova podataka, tj. 3 skupa.

  • Preglednik pokrenut.
  • Otvara se demo stranica banke Guru99.
  • Korisničko ime i lozinka nalaze se na stranici za prijavu.
  • Ponovno postavite vrijednosti.

Unesite vjerodajnicu za prijavu

Zaključak

Cucumber je vrlo popularan BDD alat. Lako ga je čitati i mogu ga razumjeti sve zainteresirane strane, uključujući tehničke i netehničke osobe.

Cucumber može se integrirati sa Selenium pomoću sljedeća 3 koraka

  1. Stvorite datoteku značajki u kojoj definirate značajku i scenarije korak po korak koristeći Gherkin jezik.
  2. Stvorite Testrunner datoteku. U ovu smo datoteku integrirali Cucumber s okvirom BDD u Selenium. Izvršavamo ovu skriptu.
  3. Stvorite definiciju koraka, stvarnu selenium skriptu definiranu pod ovim paketom.

opširnije Čitaj više