Selenium s Cucumber (BDD okvir)
U ovom ćete vodiču naučiti kako integrirati Cucumber s Selenium Webdriver.
Što je Cucumber?
Cucumber je pristup testiranju koji podržava razvoj vođen ponašanjem (BDD). Objašnjava ponašanje aplikacije u jednostavnom engleskom tekstu koristeći Gherkin jezik.
Saznajte više na – https://www.guru99.com/cucumber-tutorials.html
Što je Selenium?
Selenium je alat za automatizaciju Funkcionalno ispitivanje web aplikacije. Selenium podržava različite jezike kao što su java, ruby, python C#, itd.
Saznajte više na – https://www.guru99.com/selenium-tutorial.html
Zašto koristiti Cucumber s Selenium?
Cucumber i Selenium su dvije popularne tehnologije.
Većina organizacija koristi Selenium za funkcionalno ispitivanje. Ove organizacije koje koriste Selenium, žele se integrirati Selenium s Cucumber as Cucumber čini lako je čitati i razumjeti tok aplikacije.
Cucumber alat se temelji na okviru za razvoj vođen ponašanjem koji djeluje kao most između sljedećih osoba:
- Softverski inženjer i poslovni analitičar.
- Ručni tester i automatizirani tester.
- Ručni tester i programeri.
Cucumber BDD okvir također pomaže klijentu da razumije kod aplikacije jer koristi Gherkin jezik koji je u običnom tekstu. Svatko u organizaciji može razumjeti ponašanje softvera. Sintaksa Gherkina je u jednostavnom tekstu koji je čitljiv i razumljiv.
Preduvjet za korištenje Cucumber s Selenium
Prije nego krenemo Cucumber Selenium integracije, trebamo sljedeće stavke:
- Selenium jar datoteke:
- Selenium-poslužitelj-samostalni
Može se preuzeti na http://www.seleniumhq.org/download/
Jar datoteke za Cucumber :
- Cucumber-rezultat
- Cucumber-html
- pokrivenost koda cobertura
- Cucumber-Java
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-izvještavanje
- Hamcrest-core
- Gherkin
- Junit
Može se preuzeti na https://mvnrepository.com/search?q=Cucumber
Morate pretražiti datoteke i preuzeti ih jednu po jednu pojedinačno.
Na primjer, pokazat ćemo vam da preuzmete jednu od jar datoteka, tj. “Cucumber-jezgra."
Kliknite na gornju vezu za preuzimanje. Preusmjerava na donju stranicu. Sada pretražite određenu staklenku, tj. 'Cucumber Core' kao što je prikazano na slici ispod:
Na sljedećoj stranici kliknite na verziju 1.2.2,
Na sljedećem ekranu kliknite na preuzimanje da biste dobili 'Cucumber Core' jar datoteka.
bilješke: Radi vaše jednostavnosti, grupirali smo jar datoteke potrebne za preuzimanje s Mavena ovdje. S vremenom se te staklenke mogu ažurirati i postati nekompatibilne. Od vas se traži da ih preuzmete koristeći metodu prikazanu gore.
Automatizirano testiranje pomoću Cucumber s Selenium.
Proučimo korake za korištenje Cucumber sa selenom korak po korak. Ovdje ćemo pokriti 3 scenarija:
- Scenarij 1: Ispis teksta u konzoli.
- Scenarij 2: Unesite vjerodajnicu za prijavu i poništite vrijednost.
- Scenarij 3: Unesite vjerodajnicu za prijavu na Guru99 i poništite vrijednost. Učinite to za 3 skupa podataka.
Scenarij 1: Ispis teksta u konzoli.
U ovom scenariju samo ispisujemo tekst u konzoli koristeći Cucumber.
Korak 1) Stvorite projekt u eclipseu.
stvoriti Java projekt pod imenom “CucumberKontaktSelenium” kao što je prikazano na slici ispod.
Korak 2) Dodavanje Jar datoteka u projekt.
Desni klik na projekt > Odaberite Svojstva > Idi na Java Put izgradnje. Dodajte sve ranije preuzete biblioteke.
Korak 3) Stvaranje datoteke značajki
Za stvaranje datoteke sa značajkama prvo stvorite mapu sa značajkama kao što je prikazano na slici ispod.
Sada unesite naziv mape 'Features' i kliknite na gumb 'Finish'.
Sada stvorite datoteku značajki u mapi 'Features' s nazivom "MyTest.feature" – proces je sličan stvaranju mape
Bilješka: Možda ćete morati instalirati Cucumber Eclipse Dodatak za ovo radi. Idi na — Pomaže->Instaliraj novi softver->kopiraj i zalijepi vezu http://cucumber.github.io/cucumber-eclipse/update-site/ i instalirajte
Korak 4) Napišite scenarije.
Donji redovi napisani su u datoteci 'MyTest.feature' koristeći Gherkin jezik kao što je prikazano u nastavku:
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
Objašnjenje koda
Linija 1) U ovom retku pišemo poslovnu funkcionalnost.
Linija 2) U ovom retku pišemo scenarij za testiranje.
Linija 3) U ovom retku definiramo preduvjet.
Linija 4) U ovom retku definiramo radnju koju trebamo izvršiti.
Linija 4) U ovom retku definiramo očekivani ishod ili rezultat.
Korak 5) Pisanje selenium testrunner skripte za Selenium Cucumber dizajn okvira
Ovdje stvaramo paket 'TestRunner', a zatim datoteku klase 'Runner.java' ispod njega.
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 { }
U gore navedenom Cucumber Java primjer koda, pokrećemo test krastavca korištenjem sljedećih napomena:
@RunWith() annotation govori o klasi pokretača testa za početak izvršavanja naših testova.
@CucmberOptions() anotacija se koristi za postavljanje nekih svojstava za naš test krastavaca kao što je datoteka značajki, definicija koraka itd.
Snimka zaslona datoteke TestRunner.
Korak 6) Stvaranje skripte za definiranje koraka.
Sada ovdje stvaramo paket 'StepDefinition', a zatim datoteku skripte 'Steps.java' ispod njega. Ovdje zapravo pišemo selenium skriptu za provođenje testa Cucumber metode.
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."); } }
U gornjem kodu, klasa je stvorena pod nazivom "Koraci". Cucumber anotacija se koristi za mapiranje s datotekom značajki. Svaka metoda označavanja je definirana:
@Dano napomena definira metodu za otvaranje firefoxa i pokretanje aplikacije
@Kada annotation definirajte metodu za unos korisničkog imena i lozinke
@Zatim annotation definirajte metodu za ponovno postavljanje vjerodajnice
Pod svakom metodom ispisujemo samo poruku.
Ispod je snimak zaslona 'Steps.java' skripte i stabla projekta, kako to izgleda.
Bilješka: Definicija koraka nije ništa drugo doli koraci koje želite izvesti ovom metodom krastavaca.
Korak 7) Izvršavanje skripte.
Korisnik može izvršiti ovu skriptu iz Test runner skripte, tj. 'Runner.java' kao što je prikazano na slici ispod.
Korak 8) Analizirajte izlaz.
Prilikom izvršavanja skripte 'Runner.java', ona prikazuje tekst na konzoli. To je isti tekst definiran u skripti 'Steps.java'.
Scenarij 2: Unesite vjerodajnicu za prijavu i poništite vrijednost.
Ovdje ćemo samo unijeti vjerodajnicu na Guru99 demo stranicu za prijavu i poništiti vrijednost
Za Scenarij 2 trebamo ažurirati samo skriptu 'Steps.java'. Ovdje zapravo pišemo selenium skriptu kao što je prikazano u koracima ispod. Prvo, moramo dodati Selenium jar datoteku u ovaj projekt.
Korak 1) Ovdje ažuriramo skriptu 'Steps.java' kao što je prikazano u donjem kodu i snimci zaslona.
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(); } }
Snimka zaslona gornje selenium skripte.
Korak 2) Izvršite skriptu.
Nakon ažuriranja pokrećemo Runner.java.
Korak 3) Analizirajte izlaz.
U izlazu možete vidjeti sljedeće:
- Preglednik pokrenut.
- Otvara se demo stranica banke Guru99.
- Korisničko ime i lozinka nalaze se na stranici za prijavu.
- Ponovno postavite vrijednosti.
Scenarij 3: Unesite vjerodajnicu za prijavu na Guru99 i poništite vrijednost. Učinite to za 3 skupa podataka.
Ovdje moramo ažurirati i 'Step.java' i datoteku značajke.
Korak 1) Ažurirajte datoteku značajki kao što je prikazano u nastavku:
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.
Korak 2) Sada ažurirajte Step.java skriptu.
Ovdje ažuriramo metode za prosljeđivanje parametara, ažuriranu skriptu prikazanu u nastavku:
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(); } }
Korak 3) Sada izvršite ažuriranu skriptu.
Zaslon ispod prikazuje uspješno izvršenje skripte i vrijeme potrebno svakom skupu podataka.
Korak 4) Analizirajte izlaz.
U izlazu možete vidjeti sljedeće:
Donji izlaz se ponavlja za broj skupova podataka, tj. 3 skupa.
- Preglednik pokrenut.
- Otvara se demo stranica banke Guru99.
- Korisničko ime i lozinka nalaze se na stranici za prijavu.
- Ponovno postavite vrijednosti.
Zaključak
Cucumber je vrlo popularan BDD alat. Lako ga je čitati i mogu ga razumjeti sve zainteresirane strane, uključujući tehničke i netehničke osobe.
Cucumber može se integrirati sa Selenium pomoću sljedeća 3 koraka
- Stvorite datoteku značajki u kojoj definirate značajku i scenarije korak po korak koristeći Gherkin jezik.
- Stvorite Testrunner datoteku. U ovu smo datoteku integrirali Cucumber s okvirom BDD u Selenium. Izvršavamo ovu skriptu.
- Stvorite definiciju koraka, stvarnu selenium skriptu definiranu pod ovim paketom.