Selenium med Cucumber (BDD Framework Tutorial)


I den här handledningen kommer du att lära dig hur du integrerar Cucumber med Selenium Webdriver.

Vad är Cucumber?

Cucumber är en testmetod som stöder Behavior Driven Development (BDD). Den förklarar programmets beteende i en enkel engelsk text med Gherkin-språket.

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

Vad är Selenium?

Selenium är ett automationsverktyg för funktions~~POS=TRUNC av den webbaserade applikationen. Selenium stöder olika språk som java, ruby, python C#, etc.

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

Varför användning Cucumber med Selenium?

Cucumber och Selenium är två populära tekniker.

De flesta organisationer använder Selenium för funktionstestning. Dessa organisationer som använder Selenium, vill integrera Selenium med Cucumber as Cucumber gör det är lätt att läsa och förstå applikationsflödet.

Cucumber verktyget är baserat på Behaviour Driven Development-ramverket som fungerar som bro mellan följande personer:

  1. Mjukvaruingenjör och affärsanalytiker.
  2. Manuell testare och automationstestare.
  3. Manuell testare och utvecklare.

Cucumber BDD ram också gynnar kunden att förstå applikationskoden eftersom den använder Gherkin-språket som är i vanlig text. Vem som helst i organisationen kan förstå programvarans beteende. Syntaxen för Gherkin är i enkel text som är läsbar och begriplig.

Cucumber med Selenium

Förutsättning för användning Cucumber med Selenium

Innan vi börjar Cucumber Selenium integration behöver vi följande saker:

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

Kan laddas ner på http://www.seleniumhq.org/download/

Förutsättning för användning Cucumber med Selenium

Burkar filer för Cucumber :

  • Cucumber-kärna
  • Cucumber-html
  • cobertura kod täckning
  • Cucumber-java
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-rapportering
  • Hamcrest-kärna
  • Gurka
  • junit

Kan laddas ner på https://mvnrepository.com/search?q=Cucumber

Du måste söka efter filer och ladda ner dem en efter en individuellt.

Till exempel kommer vi att visa dig att ladda ner en av jar-filerna, dvs.Cucumber-kärna."

Klicka på nedladdningslänken ovan. Den omdirigerar till webbplatsen nedan. Sök nu i den specifika burken, dvs.Cucumber Core' enligt skärmbilden nedan:

Förutsättning för användning Cucumber med Selenium

På nästa sida klickar du på version 1.2.2,

Förutsättning för användning Cucumber med Selenium

På nästa skärm, klicka på ladda ner för att fåCucumber Core' jar-fil.

Förutsättning för användning Cucumber med Selenium

Anmärkningar: För din enkelhet har vi samlat jar-filerna som krävs för att laddas ner från Maven här.. Med tiden kanske dessa burkar uppdateras och blir inkompatibla. Du ombeds ladda ner dem med metoden som illustreras ovan.

Automationstestning med hjälp av Cucumber med Selenium.

Låt oss studera steg att använda Cucumber med selen steg för steg. Här kommer vi att täcka 3 scenarier:

  • Scenario 1: Skriv ut text i konsolen.
  • Scenario 2: Ange inloggningsuppgifter och återställ värdet.
  • Scenario 3: Ange inloggningsuppgifter på Guru99 och återställ värdet. Gör detta för 3 uppsättningar data.

Scenario 1: Skriv ut text i konsolen.

I det här scenariot skriver vi bara ut texten i konsolen med hjälp av Cucumber.

Steg 1) Skapa projekt i eclipse.

Skapa Java projekt med namnet "CucumberMedSelenium" som visas i skärmdumpen nedan.

Automationstestning med hjälp av Cucumber med Selenium

Automationstestning med hjälp av Cucumber med Selenium

Steg 2) Lägger till Jar-filer i projektet.

Högerklicka på projektet > Välj egenskaper > Gå till Java Bygg väg. Lägg till alla bibliotek som laddats ner tidigare.

Automationstestning med hjälp av Cucumber med Selenium

Steg 3) Skapar funktionsfil

För att skapa en funktionsfil, skapa först en funktionsmapp enligt skärmbilden nedan.

Automationstestning med hjälp av Cucumber med Selenium

Ange nu mappnamnet "Funktioner" och klicka på "Slutför"-knappen.

Automationstestning med hjälp av Cucumber med Selenium

Automationstestning med hjälp av Cucumber med Selenium

Skapa nu funktionsfil i mappen "Funktioner" med namnet "MyTest.feature" - Processen liknar att skapa en mapp

Automationstestning med hjälp av Cucumber med Selenium

Notera: Du kan behöva installera Cucumber Eclipse Plugin för att detta ska fungera. Gå till — Hjälper->Installera ny programvara->kopiera klistra in länken http://cucumber.github.io/cucumber-eclipse/update-site/ och installera

Steg 4) Skriv scenarier.

Raderna nedan är skrivna i filen 'MyTest.feature' med Gherkin-språket som visas nedan:

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			

Kodförklaring

Rad 1) På den här raden skriver vi affärsfunktionalitet.

Rad 2) På den här raden skriver vi ett scenario att testa.

Rad 3) På denna rad definierar vi förutsättningen.

Rad 4) I den här raden definierar vi den åtgärd vi behöver utföra.

Rad 4) På denna rad definierar vi det förväntade resultatet eller resultatet.

Steg 5) Att skriva selen testrunner script för Selenium Cucumber ramdesign

Här skapar vi 'TestRunner'-paketet och sedan klassfilen 'Runner.java' under det.

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 ovanstående Cucumber Java exempelkod kör vi gurka test genom att använda följande kommentarer:

@Spring med() anteckningen berättar om testlöparklassen för att börja utföra våra tester.

@CucmberOptions() annotering används för att ställa in vissa egenskaper för vårt gurktest som funktionsfil, stegdefinition, etc.

Skärmdump av TestRunner-filen.

Automationstestning med hjälp av Cucumber med Selenium

Steg 6) Skapa stegdefinitionsskript.

Nu här skapar vi 'StepDefinition'-paketet och sedan 'Steps.java'-skriptfilen under det. Här skriver vi faktiskt ett selenskript för att genomföra testet 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 ovan skapas klassen med namnet "Steg". Cucumber anteckning används för att mappa med funktionsfil. Varje anteckningsmetod är definierad:

@Given annotationsdefiniera metod för att öppna firefox och starta programmet

@När annotation definiera metod för att ange användarnamn och lösenord

@Sedan annotationsdefiniera metod för att återställa autentiseringsuppgifterna

Under varje metod skriver vi bara ut ett meddelande.

Nedan är skärmdumpen av "Steps.java"-skriptet och projektträdet, hur det ser ut.

Automationstestning med hjälp av Cucumber med Selenium

Notera: Stegdefinition är inget annat än de steg du vill utföra under denna gurkametod.

Steg 7) Utför skriptet.

Användaren kan köra detta skript från Test runner script, dvs 'Runner.java' som visas i skärmbilden nedan.

Automationstestning med hjälp av Cucumber med Selenium

Steg 8) Analysera resultatet.

När skriptet 'Runner.java' körs, visar det texten på konsolen. Det är samma text som definieras i 'Steps.java'-skriptet.

Automationstestning med hjälp av Cucumber med Selenium

Scenario 2: Ange inloggningsuppgifter och återställ värdet.

Här kommer vi bara att ange Credential på Guru99 demo inloggningssida och återställa värdet

För Scenario 2 behöver vi bara uppdatera skriptet "Steps.java". Här skriver vi faktiskt selenskriptet enligt stegen nedan. Först måste vi lägga till Selenium jar-fil till detta projekt.

Ange inloggningsuppgifter och återställ värdet

Steg 1) Här uppdaterar vi 'Steps.java'-skriptet som visas i nedanstående kod och skärmdump.

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

Skärmdump av ovanstående selenskript.

Ange inloggningsuppgifter och återställ värdet

Steg 2) Kör skriptet.

Efter uppdatering kör vi Runner.java.

Steg 3) Analysera resultatet.

I utgången kan du se följande:

  • Webbläsaren har startats.
  • Guru99 banks demosida öppnas.
  • Användarnamn och lösenord placeras på inloggningssidan.
  • Återställ värdena.

Ange inloggningsuppgifter och återställ värdet

Scenario 3: Ange inloggningsuppgifter på Guru99 och återställ värdet. Gör detta för 3 uppsättningar data.

Här måste vi uppdatera både 'Step.java' och funktionsfilen.

Steg 1) Uppdatera funktionsfilen enligt nedan:

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.

Ange inloggningsuppgifter

Steg 2) Uppdatera nu Step.java-skriptet.

Här uppdaterar vi metoderna för att skicka parametrarna, uppdaterat skript som visas nedan:

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

Ange inloggningsuppgifter

Steg 3) Kör nu det uppdaterade skriptet.

Skärmen nedan visar den framgångsrika exekveringen av skriptet och den tid det tar för varje uppsättning data.

Ange inloggningsuppgifter

Steg 4) Analysera resultatet.

I utgången kan du se följande:

Utdata nedan upprepas för antalet datamängder, dvs 3 uppsättningar.

  • Webbläsaren har startats.
  • Guru99 banks demosida öppnas.
  • Användarnamn och lösenord placeras på inloggningssidan.
  • Återställ värdena.

Ange inloggningsuppgifter

Slutsats

Cucumber är ett mycket populärt BDD-verktyg. Det är lätt att läsa och kan förstås av alla intressenter inklusive tekniska och icke-tekniska personer.

Cucumber kan integreras med Selenium med följande 3 steg

  1. Skapa funktionsfil som definierar funktionen och scenarierna steg för steg med hjälp av Gherkin-språket.
  2. Skapa Testrunner-fil. I den här filen integrerade vi Cucumber med BDD-ramverk i Selenium. Vi kör detta skript.
  3. Skapa stegdefinition, det faktiska selenskriptet som definieras under detta paket.

Läs mer Readmore