Selenium med agurk (BDD Framework)


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

Hvad er agurk?

Agurk 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 Agurk med Selenium?

Agurk 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 Agurk som Agurk laver det er nemt at læse og forstå ansøgningsflowet.

Agurk værktøj er baseret på Behavior Driven Development framework, der fungerer som bro mellem following mennesker:

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

Agurk 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 Agurke er i simpel tekst, hvilket er readable og forståeligt.

Agurk med Selenium

Forudsætning for at bruge Agurk med Selenium

Inden vi starter Agurk Selenium integration, vi har brug for following poster:

  • Selenium jar filer:
  • Selenium-server-standalone

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

Forudsætning for at bruge Agurk med Selenium

Krukkefiler til agurk:

  • Agurk-kerne
  • Agurk-html
  • cobertura kode dækning
  • Agurk-java
  • Agurk-junit
  • Agurk-jvm-deps
  • Agurk-rapportering
  • 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. "Agurk-kerne."

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

Forudsætning for at bruge Agurk med Selenium

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

Forudsætning for at bruge Agurk med Selenium

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

Forudsætning for at bruge Agurk 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.

Automatiseringstest ved hjælp af agurk med Selenium.

Lad os studere trin til at bruge Agurk med selenium 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 eclipse.

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

Automatiseringstest ved hjælp af agurk med Selenium

Automatiseringstest ved hjælp af agurk med Selenium

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

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

Automatiseringstest ved hjælp af agurk med Selenium

Trin 3) Opretter funktionsfil

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

Automatiseringstest ved hjælp af agurk med Selenium

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

Automatiseringstest ved hjælp af agurk med Selenium

Automatiseringstest ved hjælp af agurk med Selenium

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

Automatiseringstest ved hjælp af agurk med Selenium

Bemærk: Du skal muligvis installere agurken 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) Skrivning selenium testrunner script til Selenium Agurk ramme design

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-eksempelkode kører vi agurk test ved at bruge folloenwing 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.

Automatiseringstest ved hjælp af agurk 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 en selenium script til at udføre testen under Agurkmetoder.

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'. Agurkeanmærkning bruges til at kortlægge med feature-fil. Hver annotationsmetode er defineret:

@Givet annotation definere metode til at åbne firefox og start 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.

Automatiseringstest ved hjælp af agurk 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.

Automatiseringstest ved hjælp af agurk 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.

Automatiseringstest ved hjælp af agurk 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

Til Scenario 2 skal vi kun opdatere 'Steps.java'-scriptet. Her skriver vi faktisk selenium script 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 selenium scripts.

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 folloenwing:

  • 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 folloenwing:

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

Agurk 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.

Agurk kan integreres med Selenium ved hjælp af following 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, den faktiske selenium script defineret under denne pakke.