Selenium med Cucumber (BDD Framework)


I denne tutorial lærer du, hvordan du integrerer Cucumber med Selenium Webdriver.

Hvad er Cucumber?

Cucumber er en testmetode, som understøtter adfærdsdrevet udvikling (BDD). Det forklarer applikationens opførsel i en simpel engelsk tekst ved hjælp af Gherkin-sprog.

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

Hvad er Selenium?

Selenium er et automatiseringsværktøj til Funktionstest af den webbaserede applikation. Selenium understøtter forskellige sprog som java, ruby, python C# osv.

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

Hvorfor bruge Cucumber med Selenium?

Cucumber og Selenium er to populære teknologier.

De fleste af organisationerne bruger Selenium til funktionstest. Disse organisationer, der bruger Selenium, ønsker at integrere Selenium med Cucumber as Cucumber gør det er nemt at læse og forstå ansøgningsflowet.

Cucumber værktøjet er baseret på adfærdsdrevet udviklingsramme, der fungerer som bro mellem følgende personer:

  1. Softwareingeniør og forretningsanalytiker.
  2. Manuel tester og automatiseringstester.
  3. Manuel tester og udviklere.

Cucumber BDD ramme også gavner klienten at forstå applikationskoden da den bruger gurkesprog, som er i almindelig tekst. Enhver i organisationen kan forstå softwarens adfærd. Syntaksen for Agurker er i enkel tekst, der er læsbar og forståelig.

Cucumber med Selenium

Forudsætning for brug Cucumber med Selenium

Før vi begynder Cucumber Selenium integration, har vi brug for følgende elementer:

  • Selenium jar filer:
  • Selenium-server-standalone

Kan downloades på http://www.seleniumhq.org/download/

Forudsætning for brug Cucumber med Selenium

Krukkefiler til Cucumber :

  • Cucumber-kerne
  • Cucumber-html
  • cobertura kode dækning
  • Cucumber-java
  • Cucumber-junit
  • Cucumber-jvm-deps
  • Cucumber-indberetning
  • Hamcrest-kerne
  • Sylteagurk
  • Junit

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

Du skal søge i filer og downloade dem én efter én individuelt.

For eksempel vil vi vise dig at downloade en af ​​jar-filerne, dvs.Cucumber-kerne."

Klik på ovenstående downloadlink. Det omdirigerer til nedenstående websted. Søg nu i den pågældende krukke, dvs.Cucumber Core' som vist skærmbillede nedenfor:

Forudsætning for brug Cucumber med Selenium

På næste side, klik på version 1.2.2,

Forudsætning for brug Cucumber med Selenium

På det næste skærmbillede skal du klikke på download for at få 'Cucumber Core' jar-fil.

Forudsætning for brug Cucumber med Selenium

Bemærk: For nemheds skyld har vi samlet de jar-filer, der kræves for at blive downloadet fra Maven link.. Med tiden bliver disse krukker måske opdateret og bliver inkompatible. Du bliver bedt om at downloade dem ved hjælp af metoden illustreret ovenfor.

Automationstest ved hjælp af Cucumber med Selenium.

Lad os studere trin til brug Cucumber med selen trin for trin. Her vil vi dække 3 scenarier:

  • Scenario 1: Udskriv tekst i konsollen.
  • Scenarie 2: Indtast login-legitimationsoplysninger og nulstil værdien.
  • Scenario 3: Indtast login-legitimationsoplysninger på Guru99 og nulstil værdien. Gør dette for 3 sæt data.

Scenario 1: Udskriv tekst i konsollen.

I dette scenarie udskriver vi bare teksten i konsollen ved at bruge Cucumber.

Trin 1) Opret projekt i formørkelse.

Opret Java projekt med navnet "CucumberMedSelenium" som vist på nedenstående skærmbillede.

Automationstest ved hjælp af Cucumber med Selenium

Automationstest ved hjælp af Cucumber med Selenium

Trin 2) Tilføjelse af Jar-filer i projektet.

Højreklik på projektet > Vælg egenskaber > Gå til Java Byg sti. Tilføj alle de tidligere downloadede biblioteker.

Automationstest ved hjælp af Cucumber med Selenium

Trin 3) Opretter funktionsfil

For at oprette funktionsfil skal du først oprette en funktionsmappe som vist nedenfor skærmbillede.

Automationstest ved hjælp af Cucumber med Selenium

Indtast nu mappenavnet 'Funktioner' og klik på 'Udfør'-knappen.

Automationstest ved hjælp af Cucumber med Selenium

Automationstest ved hjælp af Cucumber med Selenium

Opret nu feature-fil i 'Features'-mappen med navnet "MyTest.feature" - Processen ligner at oprette en mappe

Automationstest ved hjælp af Cucumber med Selenium

Bemærk: Du skal muligvis installere Cucumber Eclipse Plugin for at dette virker. Gå til — Hjælp->Installer ny software->kopier og indsæt linket http://cucumber.github.io/cucumber-eclipse/update-site/ og installer

Trin 4) Skriv scenarier.

Nedenstående linjer er skrevet i 'MyTest.feature'-filen ved at bruge Gherkin-sproget 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 linje skriver vi forretningsfunktionalitet.

Linje 2) I denne linje skriver vi et scenarie, der skal testes.

Linje 3) I denne linje definerer vi forudsætningen.

Linje 4) I denne linje definerer vi den handling, vi skal udføre.

Linje 4) I denne linje definerer vi det forventede resultat eller resultat.

Trin 5) At skrive selen testrunner script til Selenium Cucumber rammedesign

Her opretter vi 'TestRunner'-pakken og derefter '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 ovenstående Cucumber Java eksempel kode, kører vi agurk test ved at bruge følgende anmærkninger:

@RunWith() annotation fortæller om testløberklassen for at begynde at udføre vores tests.

@CucmberOptions() annotation bruges til at indstille nogle egenskaber for vores agurketest som feature-fil, trindefinition osv.

Skærmbillede af TestRunner-filen.

Automationstest ved hjælp af Cucumber med Selenium

Trin 6) Oprettelse af Step Definition script.

Her opretter vi 'StepDefinition'-pakken og derefter 'Steps.java' scriptfil under den. Her skriver vi faktisk et selenscript til at udfø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 ovenstående kode er klassen oprettet med navnet 'Steps'. Cucumber annotation bruges til at kortlægge med feature-fil. Hver annotationsmetode er defineret:

@Givet annotationsdefiner metode til at åbne firefox og starte applikationen

@Hvornår annotationsdefiner metode til at indtaste brugernavn og adgangskode

@Derefter annotationsdefiner metode til at nulstille legitimationsoplysningerne

Under hver metode udskriver vi kun en besked.

Nedenfor er skærmbilledet af 'Steps.java'-scriptet og projekttræet, hvordan det ser ud.

Automationstest ved hjælp af Cucumber med Selenium

Bemærk: Trindefinition er intet andet end de trin, du vil udføre under denne agurkmetode.

Trin 7) Udførelse af scriptet.

Brugeren kan udføre dette script fra Test runner script, dvs. 'Runner.java' som vist i nedenstående skærmbillede.

Automationstest ved hjælp af Cucumber med Selenium

Trin 8) Analyser outputtet.

Når scriptet 'Runner.java' udføres, viser det teksten på konsollen. Det er den samme tekst, der er defineret i 'Steps.java'-scriptet.

Automationstest ved hjælp af Cucumber med Selenium

Scenarie 2: Indtast login-legitimationsoplysninger og nulstil værdien.

Her vil vi bare indtaste legitimationsoplysninger på Guru99 demo login-side og nulstille værdien

For Scenario 2 skal vi kun opdatere 'Steps.java'-scriptet. Her skriver vi faktisk selen-scriptet som vist nedenfor trin. Først skal vi tilføje Selenium jar-fil til dette projekt.

Indtast loginoplysninger og nulstil værdien

Trin 1) Her opdaterer vi 'Steps.java'-scriptet som vist i nedenstående kode og skærmbillede.

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ærmbillede af ovenstående selen-script.

Indtast loginoplysninger og nulstil værdien

Trin 2) Udfør scriptet.

Efter opdatering kører vi Runner.java.

Trin 3) Analyser outputtet.

I outputtet kan du se følgende:

  • Browser startet.
  • Guru99 bank demoside bliver åbnet.
  • Brugernavn og adgangskode placeres på login-siden.
  • Nulstil værdierne.

Indtast loginoplysninger og nulstil værdien

Scenario 3: Indtast login-legitimationsoplysninger på Guru99 og nulstil værdien. Gør dette for 3 sæt data.

Her skal vi opdatere både 'Step.java' og feature-filen.

Trin 1) Opdater funktionsfilen 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.

Indtast loginoplysninger

Trin 2) Opdater nu Step.java-scriptet.

Her opdaterer vi metoderne til at videregive parametrene, opdateret script 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();					
    }		
}		

Indtast loginoplysninger

Trin 3) Udfør nu det opdaterede script.

Nedenstående skærm viser den vellykkede udførelse af scriptet og den tid, det tager for hvert sæt data.

Indtast loginoplysninger

Trin 4) Analyser outputtet.

I outputtet kan du se følgende:

Nedenstående output bliver gentaget for antallet af datasæt, dvs. 3 sæt.

  • Browser startet.
  • Guru99 bank demoside bliver åbnet.
  • Brugernavn og adgangskode placeres på login-siden.
  • Nulstil værdierne.

Indtast loginoplysninger

Konklusion

Cucumber er et meget populært BDD-værktøj. Det er let at læse og kan forstås af alle interessenter, inklusive tekniske og ikke-tekniske personer.

Cucumber kan integreres med Selenium ved at bruge følgende 3 trin

  1. Opret feature-fil, som definerer funktionen og scenarierne trin for trin ved hjælp af Gherkin-sproget.
  2. Opret Testrunner-fil. I denne fil integrerede vi Cucumber med BDD-ramme i Selenium. Vi udfører dette script.
  3. Opret Step definition, det faktiske selenscript defineret under denne pakke.

Læs mere Læs mere