Selenium med Cucumber (BDD-rammeverk)


I denne opplæringen lærer du hvordan du integrerer Cucumber med Selenium Webdriver.

Hva er Cucumber?

Cucumber er en testmetode som støtter Behavior Driven Development (BDD). Den forklarer oppførselen til applikasjonen i en enkel engelsk tekst ved å bruke Gherkin-språket.

Lær mer på – https://www.guru99.com/cucumber-tutorials.html

Hva er Selenium?

Selenium er et automatiseringsverktøy for Funksjonell testing av den nettbaserte applikasjonen. Selenium støtter forskjellige språk som java, ruby, python C#, etc.

Lær mer på – https://www.guru99.com/selenium-tutorial.html

Hvorfor bruke Cucumber med Selenium?

Cucumber og Selenium er to populære teknologier.

De fleste organisasjonene bruker Selenium for funksjonstesting. Disse organisasjonene som bruker Selenium, ønsker å integrere Selenium med Cucumber as Cucumber gjør det er lett å lese og forstå søknadsflyten.

Cucumber verktøyet er basert på Behaviour Driven Development-rammeverket som fungerer som broen mellom følgende personer:

  1. Programvareingeniør og forretningsanalytiker.
  2. Manuell tester og automatiseringstester.
  3. Manuell tester og utviklere.

Cucumber BDD rammeverk også gagner klienten til å forstå applikasjonskoden ettersom den bruker Gherkin-språket som er i ren tekst. Alle i organisasjonen kan forstå oppførselen til programvaren. Syntaksen til Gherkin er i enkel tekst som er lesbar og forståelig.

Cucumber med Selenium

Forutsetning for bruk Cucumber med Selenium

Før vi begynner Cucumber Selenium integrasjon, trenger vi følgende elementer:

  • Selenium jar filer:
  • Selenium-server-frittstående

Kan lastes ned på http://www.seleniumhq.org/download/

Forutsetning for bruk Cucumber med Selenium

Krukkefiler For Cucumber :

  • Cucumber-core
  • Cucumber-html
  • cobertura-kodedekning
  • Cucumber-java
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-rapportering
  • Hamcrest-kjerne
  • Gherkin
  • Junite

Kan lastes ned på https://mvnrepository.com/search?q=Cucumber

Du må søke etter filer og laste dem ned en etter en individuelt.

For eksempel vil vi vise deg å laste ned en av jar-filene, dvs. "Cucumber-kjerne."

Klikk på nedlastingslenken ovenfor. Den omdirigerer til nettstedet nedenfor. Søk nå i den spesielle krukken, dvs.Cucumber Core' som vist skjermbilde nedenfor:

Forutsetning for bruk Cucumber med Selenium

På neste side klikker du på versjon 1.2.2,

Forutsetning for bruk Cucumber med Selenium

I neste skjermbilde klikker du på last ned for å fåCucumber Core' jar-fil.

Forutsetning for bruk Cucumber med Selenium

Merknader: For enkelhets skyld har vi samlet jar-filene som kreves for å lastes ned fra Maven her.. Med tiden kan disse glassene oppdateres og bli inkompatible. Du blir bedt om å laste dem ned ved å bruke metoden illustrert ovenfor.

Automatiseringstesting ved hjelp av Cucumber med Selenium.

La oss studere fremgangsmåten for bruk Cucumber med selen trinn for trinn. Her skal vi dekke 3 scenarier:

  • Scenario 1: Skriv ut tekst i konsollen.
  • Scenario 2: Skriv inn påloggingslegitimasjon og tilbakestill verdien.
  • Scenario 3: Skriv inn påloggingslegitimasjon på Guru99 og tilbakestill verdien. Gjør dette for 3 sett med data.

Scenario 1: Skriv ut tekst i konsollen.

I dette scenariet skriver vi bare ut teksten i konsollen ved å bruke Cucumber.

Trinn 1) Lag prosjekt i formørkelse.

Opprett Java prosjekt med navnet "CucumberMedSelenium" som vist i skjermbildet nedenfor.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Automatiseringstesting ved hjelp av Cucumber med Selenium

Trinn 2) Legger til Jar-filer i prosjektet.

Høyreklikk på prosjektet > Velg egenskaper > Gå til Java Bygg sti. Legg til alle bibliotekene som er lastet ned tidligere.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Trinn 3) Oppretter funksjonsfil

For å lage funksjonsfil først opprette funksjonsmappe som vist nedenfor skjermbilde.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Skriv inn mappenavnet 'Funksjoner' og klikk på 'Fullfør'-knappen.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Automatiseringstesting ved hjelp av Cucumber med Selenium

Opprett nå funksjonsfil i 'Funksjoner'-mappen med navnet "MyTest.feature" - Prosessen ligner på å lage en mappe

Automatiseringstesting ved hjelp av Cucumber med Selenium

OBS: Du må kanskje installere Cucumber Eclipse Plugin for at dette skal fungere. Gå til — Hjelp->Installer ny programvare->kopier og lim inn lenken http://cucumber.github.io/cucumber-eclipse/update-site/ og installer

Trinn 4) Skriv scenarier.

Linjene nedenfor er skrevet i 'MyTest.feature'-filen med Gherkin-språket som vist nedenfor:

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			

Kode Forklaring

Linje 1) I denne linjen skriver vi forretningsfunksjonalitet.

Linje 2) I denne linjen skriver vi et scenario for å teste.

Linje 3) I denne linjen definerer vi forutsetningen.

Linje 4) I denne linjen definerer vi handlingen vi må utføre.

Linje 4) I denne linjen definerer vi det forventede resultatet eller resultatet.

Trinn 5) Skrive selen testrunner script for Selenium Cucumber rammedesign

Her lager vi 'TestRunner'-pakken og deretter 'Runner.java'-klassefilen under den.

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 				
{		

}

I det ovennevnte Cucumber Java eksempelkode, kjører vi agurk test ved å bruke følgende merknader:

@RunWith() annotering forteller om testløperklassen for å begynne å utføre testene våre.

@CucmberOptions() annotering brukes til å angi noen egenskaper for agurktesten vår som funksjonsfil, trinndefinisjon, etc.

Skjermbilde av TestRunner-filen.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Trinn 6) Opprette trinndefinisjonsskript.

Nå her lager vi 'StepDefinition'-pakken og deretter 'Steps.java'-skriptfilen under den. Her skriver vi faktisk et selenskript for å gjennomføre testen under Cucumber metoder.

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

}

I koden ovenfor er klassen opprettet med navnet "Steps". Cucumber merknad brukes til å kartlegge med funksjonsfil. Hver annoteringsmetode er definert:

@Gi annotasjonsdefiner metode for å åpne firefox og starte applikasjonen

@Når annotasjonsdefiner metode for å angi brukernavn og passord

@Da annotasjonsdefiner metode for å tilbakestille legitimasjonen

Under hver metode skriver vi bare ut en melding.

Nedenfor er skjermbildet av 'Steps.java'-skriptet og prosjekttreet, hvordan det ser ut.

Automatiseringstesting ved hjelp av Cucumber med Selenium

OBS: Trinndefinisjon er ingenting annet enn trinnene du vil utføre under denne agurkmetoden.

Trinn 7) Utførelse av skriptet.

Brukeren kan kjøre dette skriptet fra Test runner script, dvs. 'Runner.java' som vist i skjermbildet nedenfor.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Trinn 8) Analyser utgangen.

Når du kjører 'Runner.java'-skriptet, viser det teksten på konsollen. Det er den samme teksten som er definert i 'Steps.java'-skriptet.

Automatiseringstesting ved hjelp av Cucumber med Selenium

Scenario 2: Skriv inn påloggingslegitimasjon og tilbakestill verdien.

Her vil vi bare skrive inn legitimasjon på Guru99 demo påloggingsside og tilbakestille verdien

For Scenario 2 trenger vi kun å oppdatere 'Steps.java'-skriptet. Her skriver vi faktisk selenskriptet som vist under trinnene. Først må vi legge til Selenium jar-fil til dette prosjektet.

Skriv inn påloggingsinformasjon og tilbakestill verdien

Trinn 1) Her oppdaterer vi 'Steps.java'-skriptet som vist i koden og skjermbildet nedenfor.

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

Skjermbilde av selenskriptet ovenfor.

Skriv inn påloggingsinformasjon og tilbakestill verdien

Trinn 2) Utfør skriptet.

Etter oppdatering kjører vi Runner.java.

Trinn 3) Analyser utgangen.

I utgangen kan du se følgende:

  • Nettleser startet.
  • Guru99 bank demoside blir åpnet.
  • Brukernavn og passord plasseres på innloggingssiden.
  • Tilbakestill verdiene.

Skriv inn påloggingsinformasjon og tilbakestill verdien

Scenario 3: Skriv inn påloggingslegitimasjon på Guru99 og tilbakestill verdien. Gjør dette for 3 sett med data.

Her må vi oppdatere både 'Step.java' og funksjonsfilen.

Trinn 1) Oppdater funksjonsfilen som vist nedenfor:

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.

Skriv inn påloggingsinformasjon

Trinn 2) Oppdater nå Step.java-skriptet.

Her oppdaterer vi metodene for å sende parametrene, oppdatert skript vist nedenfor:

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

Skriv inn påloggingsinformasjon

Trinn 3) Kjør nå det oppdaterte skriptet.

Skjermbildet nedenfor viser vellykket utførelse av skriptet og tiden det tar for hvert sett med data.

Skriv inn påloggingsinformasjon

Trinn 4) Analyser utgangen.

I utgangen kan du se følgende:

Utdataene under blir gjentatt for antall datasett, dvs. 3 sett.

  • Nettleser startet.
  • Guru99 bank demoside blir åpnet.
  • Brukernavn og passord plasseres på innloggingssiden.
  • Tilbakestill verdiene.

Skriv inn påloggingsinformasjon

konklusjonen

Cucumber er et veldig populært BDD-verktøy. Den er lett å lese og kan forstås av alle interessenter, inkludert tekniske og ikke-tekniske personer.

Cucumber kan integreres med Selenium ved å bruke følgende 3 trinn

  1. Lag funksjonsfil som definerer funksjonen og scenariene trinn for trinn ved å bruke Gherkin-språket.
  2. Opprett Testrunner-fil. I denne filen har vi integrert Cucumber med BDD-rammeverk i Selenium. Vi kjører dette skriptet.
  3. Lag Step-definisjon, selve selenskriptet definert under denne pakken.