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:
- Programvareingeniør og forretningsanalytiker.
- Manuell tester og automatiseringstester.
- 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.
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/
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:
På neste side klikker du på versjon 1.2.2,
I neste skjermbilde klikker du på last ned for å fåCucumber Core' jar-fil.
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.
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.
Trinn 3) Oppretter funksjonsfil
For å lage funksjonsfil først opprette funksjonsmappe som vist nedenfor skjermbilde.
Skriv inn mappenavnet 'Funksjoner' og klikk på 'Fullfør'-knappen.
Opprett nå funksjonsfil i 'Funksjoner'-mappen med navnet "MyTest.feature" - Prosessen ligner på å lage en mappe
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.
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.
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.
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.
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.
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.
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.
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.
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(); } }
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.
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.
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
- Lag funksjonsfil som definerer funksjonen og scenariene trinn for trinn ved å bruke Gherkin-språket.
- Opprett Testrunner-fil. I denne filen har vi integrert Cucumber med BDD-rammeverk i Selenium. Vi kjører dette skriptet.
- Lag Step-definisjon, selve selenskriptet definert under denne pakken.