I den här handledningen lär du dig hur du integrerar gurka med Selenium Webdriver.
Vad är gurka?
Gurka är en testmetod som stöder BDD (Behavior Driven Development). Det förklarar applikationens beteende i en enkel engelsk text med hjälp av gurkspråk.
Läs mer på - https://www.guru99.com/cucumber-tutorials.html
Vad är selen?
Selen är ett automatiseringsverktyg för funktionstestning av den webbaserade applikationen. Selen stöder olika språk som java, ruby, python C #, etc.
Läs mer på - https://www.guru99.com/selenium-tutorial.html
I den här gurkahandledningen lär vi oss-
- Varför använda gurka med selen?
- Förutsättning för att använda gurka med selen.
- Automationstestning med gurka med selen.
- 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.
Varför använda gurka med selen?
Gurka och selen är två populära tekniker.
De flesta organisationer använder Selen för funktionstestning. Dessa organisationer som använder selen vill integrera selen med gurka eftersom gurka gör det enkelt att läsa och förstå applikationsflödet.
Gurkaverktyget är baserat på ramen för beteendedriven utveckling som fungerar som bron mellan följande personer:
- Programvaruingenjör och affärsanalytiker.
- Manuell testare och automatiseringstestare.
- Manuell testare och utvecklare.
Gurka BDD-ramverk gynnar också klienten att förstå applikationskoden eftersom den använder ättikspråk som finns i vanlig text. Alla i organisationen kan förstå programvarans beteende. Syntaxen för Gherkin är i enkel text som är läsbar och förståelig.
Förutsättning för att använda gurka med selen
Innan vi startar gurkselenintegration behöver vi följande artiklar:
- Selenburkfiler:
- Selen-server-fristående
Kan laddas ner på http://www.seleniumhq.org/download/
Burkfiler för gurka:
- Gurka-kärna
- Gurka-html
- cobertura kod täckning
- Gurka-java
- Gurka-junit
- Gurka-jvm-deps
- Gurka-rapportering
- Hemcrest-kärna
- Gurka
- Junit
Kan laddas ner på https://mvnrepository.com/search?q= Gurka
Du måste söka efter filer och ladda ner dem en efter en individuellt.
Till exempel visar vi dig att ladda ner en av jar-filerna, dvs. "Gurka-kärna."
Klicka på nedladdningslänken ovan. Den omdirigerar till webbplatsen nedan. Sök nu i den speciella burken, dvs "Gurka Core" som visas skärmdump nedan:
På nästa sida, klicka på version 1.2.2,
På nästa skärm klickar du på nedladdning för att hämta filen 'Cucumber Core' jar.
Obs : För din lätthet har vi buntat de jar-filer som krävs för nedladdning från Maven här. Med tiden kan dessa burkar uppdateras och bli oförenliga. Du ombeds ladda ner dem med den metod som illustreras ovan.
Automationstestning med gurka med selen.
Låt oss studera steg för att använda gurka 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 Gurka.
Steg 1) Skapa projekt i förmörkelse.
Skapa Java-projekt med namnet "CucumberWithSelenium" som visas på skärmbilden nedan.
Steg 2) Lägga till Jar-filer i projektet.
Högerklicka på projektet> Välj egenskaper> Gå till Java Build Path. Lägg till alla tidigare nedladdade bibliotek.
Steg 3) Skapa funktionsfil
För att skapa funktionsfil skapar du först mapp för funktioner som visas nedan.
Ange nu mappnamn 'Funktioner' och klicka på 'Slutför' -knappen.
Skapa nu funktionsfil i "Funktioner" -mappen med namnet "MyTest.feature" - Processen liknar att skapa en mapp
Obs! Du kan behöva installera plugin-plugin för gurka för att detta ska fungera. Gå till - Hjälp-> Installera ny programvara-> kopiera och klistra in länken http://cucumber.github.io/cucumber-eclipse/update-site/ och installera
Steg 4) Skriv scenarier.
Nedanstående rader är skrivna i 'MyTest.feature' -filen med hjälp av ättiksprå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) I den här raden skriver vi affärsfunktionalitet.
Rad 2) I den här raden skriver vi ett scenario att testa.
Linje 3) I 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) I den här raden definierar vi det förväntade resultatet eller resultatet.
Steg 5) Skriva selen testrunner manus för Selenium Gurka ramdesign
Här skapar vi "TestRunner" -paketet och sedan "Runner.java" klassfil 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 gurktestet med följande kommentarer:
@RunWith () -anteckningen berättar om testlöparklassen för att börja utföra våra tester.
@CucmberOptions () -anteckningen 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 skapar vi paketet "StepDefinition" och sedan "Steps.java" -skriptfilen under det. Här skriver vi faktiskt ett selenmanus för att utföra testet under gurkmetoder.
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 "Steps". Gurka-anteckning används för att kartlägga med funktionsfil. Varje anteckningsmetod definieras:
@Given annotation definiera metod för att öppna Firefox och starta applikationen
@När annotering definierar metod för att ange användarnamn och lösenord
@Then anmärkning definiera metod för att återställa referensen
Under varje metod skriver vi bara ut ett meddelande.
Nedan är skärmdumpen av 'Steps.java' -skriptet och projektträdet, hur det ser ut.
Obs! Stegdefinition är inget annat än de steg du vill utföra enligt denna gurka-metod.
Steg 7) Exekvera skriptet.
Användaren kan köra detta skript från Test runner-skript, dvs. 'Runner.java' som visas i skärmdumpen nedan.
Steg 8) Analysera utdata.
Vid körning av 'Runner.java' -skriptet visar 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 referens på Guru99-inloggningssidan för demo och återställa värdet
För Scenario 2 behöver vi endast uppdatera 'Steps.java' -skriptet. Här skriver vi faktiskt selenskriptet enligt nedanstående steg. Först måste vi lägga till Selenium-jar-fil i det här projektet.
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 manuset.
Efter uppdatering kör vi Runner.java.
Steg 3) Analysera utdata.
I utgången kan du se följande:
- Webbläsaren startad.
- Guru99-bankens 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
and 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 parametrar, 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.
Nedanstående skärm visar framgångsrikt körning av skriptet och den tid det tar för varje uppsättning data.
Steg 4) Analysera utdata.
I utgången kan du se följande:
Nedanstående utdata upprepas för antalet datamängder, dvs. 3 uppsättningar.
- Webbläsaren startad.
- Guru99-bankens demosida öppnas.
- Användarnamn och lösenord placeras på inloggningssidan.
- Återställ värdena.
Slutsats.
Gurka är ett mycket populärt BDD-verktyg. Det är lätt att läsa och kan förstås av alla intressenter inklusive teknisk och icke-teknisk person.
Gurka kan integreras med Selen med följande 3 steg
- Skapa funktionsfil där du definierar funktionen och scenarier steg för steg med hjälp av Gherkin-språk.
- Skapa Testrunner-fil. I den här filen integrerade vi gurka med BDD-ramverk i Selen. Vi kör det här skriptet.
- Skapa stegdefinition, det faktiska selenskriptet som definieras under detta paket.