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:
- Mjukvaruingenjör och affärsanalytiker.
- Manuell testare och automationstestare.
- 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.
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/
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:
På nästa sida klickar du på version 1.2.2,
På nästa skärm, klicka på ladda ner för att fåCucumber Core' jar-fil.
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.
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.
Steg 3) Skapar funktionsfil
För att skapa en funktionsfil, skapa först en funktionsmapp enligt skärmbilden nedan.
Ange nu mappnamnet "Funktioner" och klicka på "Slutför"-knappen.
Skapa nu funktionsfil i mappen "Funktioner" med namnet "MyTest.feature" - Processen liknar att skapa en mapp
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.
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.
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.
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.
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.
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.
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.
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.
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(); } }
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.
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.
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
- Skapa funktionsfil som definierar funktionen och scenarierna steg för steg med hjälp av Gherkin-språket.
- Skapa Testrunner-fil. I den här filen integrerade vi Cucumber med BDD-ramverk i Selenium. Vi kör detta skript.
- Skapa stegdefinition, det faktiska selenskriptet som definieras under detta paket.