Selenium sa Cucumber (BDD Framework Tutorial)
โก Pametni saลพetak
Selenium sa Cucumber formira snaลพan okvir za razvoj voฤen ponaลกanjem (BDD) koji kombinira jednostavnu Gherkin sintaksu s Selenium Automatizacija WebDrivera. Ovaj vodiฤ objaลกnjava preduvjete, prolazi kroz tri praktiฤna scenarija i pokazuje kako se datoteke znaฤajki, definicije koraka i klasa TestRunner integriraju za izvrลกavanje testova preglednika.

U ovom ฤete vodiฤu nauฤiti kako integrirati Cucumber sa Selenium WebDriver za izgradnju okvira za razvoj voฤen ponaลกanjem (BDD) koji je ฤitljiv, odrลพiv i voฤen podacima.
ล to je Cucumber?
Cucumber je alat za testiranje koji podrลพava razvoj voฤen ponaลกanjem (BDD). Opisuje ponaลกanje aplikacije jednostavnim engleskim tekstom koristeฤi Gherkin jezik, koji omoguฤuje osobama koje nisu programeri da doprinesu specifikacijama testiranja bez uฤenja programskog jezika. Saznajte viลกe u naลกem Cucumber udลพbenik.
ล to je Selenium?
Selenium je alat za automatizaciju koji se koristi za Funkcionalno ispitivanje web-baziranih aplikacija. Selenium podrลพava viลกe programskih jezika, ukljuฤujuฤi Java, Ruby, Pythoni C#, ลกto ga ฤini prirodnim izborom za timove s razliฤitim tehniฤkim iskustvom. Saznajte viลกe u naลกem Selenium udลพbenik.
Zaลกto koristiti Cucumber sa Selenium?
Cucumber i Selenium su dvije od najฤeลกฤe prihvaฤenih tehnologija testiranja. Veฤina organizacija veฤ koristi Selenium za funkcionalno testiranje i ลพelite slojevito Cucumber na vrhu jer Cucumber olakลกava ฤitanje i razumijevanje tijeka aplikacije.
Cucumber temelji se na okviru razvoja voฤenog ponaลกanjem koji djeluje kao most izmeฤu sljedeฤih uloga:
- Softverski inลพenjer i poslovni analitiฤar.
- Ruฤni tester i automatizirani tester.
- Ruฤni tester i programeri.
The Cucumber BDD okvir takoฤer pomaลพe klijentima da razumiju kod aplikacije jer koristi Gherkin jezik, koji je u obiฤnom tekstu. Svatko u organizaciji moลพe pratiti ponaลกanje softvera. Gherkin sintaksa je na jednostavnom i ฤitljivom engleskom jeziku, ลกto specifikaciju ฤini dostupnom i netehniฤkim ฤitateljima.
Preduvjeti za koriลกtenje Cucumber sa Selenium
Prije nego ลกto zapoฤnemo Cucumber-Selenium integraciju, potrebne su vam sljedeฤe stavke:
Selenium jar datoteke:
- Selenium-posluลพitelj-samostalni
Moลพete ih preuzeti na https://www.selenium.dev/downloads/.
JAR datoteke za Cucumber:
- Cucumber-rezultat
- Cucumber-html
- Cobertura pokrivenost koda
- Cucumber-Java
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-izvjeลกtavanje
- Hamcrest-core
- Gherkin
- JUnit
Moลพete ih preuzeti na https://mvnrepository.com/search?q=CucumberMorat ฤete traลพiti svaku jar datoteku i preuzimati ih jednu po jednu.
Na primjer, evo kako preuzeti jednu od jar datoteka, "Cucumber-coreโ biblioteka.
Kliknite gornju poveznicu za preuzimanje. Preusmjerava na stranicu Maven Repository. Sada potraลพite odreฤenu jar datoteku (u ovom sluฤaju โCucumber Coreโ) kao ลกto je prikazano na snimci zaslona ispod:
Na sljedeฤoj stranici kliknite verziju 1.2.2:
Na sljedeฤem zaslonu kliknite Preuzmi da biste preuzeli Cucumber Osnovna jar datoteka:
Biljeลกka: Radi praktiฤnosti, sastavili smo paket potrebnih Maven jar datoteka ovdjeOve JAR datoteke mogu s vremenom postati zastarjele i nekompatibilne, stoga preporuฤujemo da ih sami preuzmete koristeฤi gore opisanu metodu.
Automatizirano testiranje pomoฤu Cucumber sa Selenium
Proฤimo kroz postupak koriลกtenja Cucumber sa Selenium korak po korak. Ovdje ฤemo obraditi tri scenarija:
- Scenarij 1: Ispis teksta u konzoli.
- Scenarij 2: Unesite pristupne podatke i resetirajte vrijednost.
- Scenarij 3: Unesite pristupne podatke na Guru99 i resetirajte vrijednost โ ponovljeno za 3 seta podataka.
Scenarij 1: Ispis teksta u konzoli
U ovom scenariju, jednostavno ispisujemo tekst u konzoli koristeฤi Cucumber.
Korak 1) Izradite projekt u Eclipse.
Napravite Java projekt s nazivom "CucumberKontaktSelenium" kao ลกto je prikazano na snimci zaslona ispod.
Korak 2) Dodajte jar datoteke u projekt.
Desnom tipkom miลกa kliknite projekt > Svojstva > Java Putanja izgradnje. Dodajte sve biblioteke koje ste ranije preuzeli.
Korak 3) Izradite datoteku znaฤajki.
Za izradu datoteke znaฤajki, prvo stvorite mapu Znaฤajke kao ลกto je prikazano na snimci zaslona u nastavku.
Unesite naziv mape โZnaฤajkeโ i kliknite Zavrลกi.
Sada stvorite datoteku znaฤajki unutar mape Znaฤajke pod nazivom MyTest.featurePostupak je sliฤan stvaranju mape.
Biljeลกka: Moลพda ฤete morati instalirati Cucumber Eclipse Prvo dodatak. Idite na Pomoฤ โ Instaliraj novi softver, zalijepite poveznicu http://cucumber.github.io/cucumber-eclipse/update-site/, i instalirajte ga.
Korak 4) Napiลกite scenarije.
Donji retci su napisani u MyTest.feature koristeฤi Gherkin jezik:
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
Code Objaลกnjenje
Linija 1) Definira funkcionalnost poslovanja.
Linija 2) Definira scenarij za testiranje.
Linija 3) Definira preduvjet (Zadan).
Linija 4) Definira radnju koju treba izvrลกiti (Kada).
Linija 5) Definira oฤekivani ishod ili rezultat (Then).
Korak 5) Napiลกi Selenium TestRunner skripta za Cucumber dizajn okvira.
Napravite TestRunner paket, a zatim Runner.java datoteka klase ispod nje.
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 na primjer, pokreฤemo test krastavca koristeฤi sljedeฤe napomene:
@RunWith() govori JUnit o klasi test runner koja poฤinje izvrลกavati naลกe testove.
@CucumberOpcije() postavlja svojstva testa kao ลกto su putanja datoteke znaฤajki i paket za spajanje definicija koraka.
Snimka zaslona TestRunner datoteke:
Korak 6) Izradite skriptu za definiciju koraka.
Sada kreirajte a StepDefinition paket, a zatim Koraci.java skriptnu datoteku ispod nje. Unutar Steps.java piลกemo Selenium logika koja se preslikava na svaki Gherkinov korak.
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.");
}
}
Razred je nazvan Koracii Cucumber anotacije mapiraju svaku metodu na korak datoteke znaฤajki:
@Dano definira metodu otvaranja Firefox i pokrenite aplikaciju.
@Kada definira naฤin unosa korisniฤkog imena i lozinke.
@Zatim definira metodu za resetiranje vjerodajnica.
Svaka metoda jednostavno ispisuje poruku na konzolu.
Snimka zaslona u nastavku prikazuje skriptu Steps.java i stablo projekta:
Biljeลกka: Definicija koraka je kod koji ลพelite Cucumber izvrลกiti kada se podudara s korakom datoteke znaฤajki.
Korak 7) Izvrลกite skriptu.
Pokrenite ovaj skript iz datoteke TestRunner (Runner.java) kao ลกto je prikazano dolje.
Korak 8) Analizirajte izlaz.
Prilikom izvrลกavanja Runner.java, Cucumber ispisuje isti tekst definiran u Steps.java u konzolu.
Scenarij 2: Unesite podatke za prijavu i resetirajte vrijednost
Ovdje unosimo vjerodajnice na Guru99 demo stranica za prijavu i resetiranje vrijednosti.
Za scenarij 2 potrebno je samo aลพurirati Koraci.javaOvdje dodajemo pravi Selenium kod. Prvo provjerite Selenium jar datoteka se dodaje u projekt.
Korak 1) Aลพurirajte skriptu Steps.java kao ลกto je prikazano dolje.
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 gore navedenog Selenium skripta:
Korak 2) Izvrลกite skriptu.
Nakon aลพuriranja Steps.java, pokrenite Runner.java.
Korak 3) Analizirajte izlaz. U izlazu ฤete vidjeti sljedeฤe:
- Preglednik pokrenut.
- GuruOtvara se demo stranica 99 banke.
- Korisniฤko ime i lozinka se unose na stranici za prijavu.
- Tipka Reset briลกe vrijednosti.
Scenarij 3: Pokrenite postupak prijave i resetiranja s 3 skupa podataka
Ovdje moramo aลพurirati oboje Koraci.java i datoteku znaฤajki za pokretanje istog toka s tri seta vjerodajnica.
Korak 1) Aลพurirajte datoteku znaฤajki kao ลกto je prikazano dolje.
Koristimo Nacrt scenarija i Primjeri sintaksa tako Cucumber ponavlja isti scenarij kroz svaki redak podataka.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
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 |
Korak 2) Aลพurirajte skriptu Steps.java.
Ovdje aลพuriramo potpise metoda tako da prihvaฤaju parametre iz tablice Primjeri.
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(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) Izvrลกite aลพurirani skript.
Donji zaslon prikazuje uspjeลกno izvrลกenje i vrijeme potrebno za svaki skup podataka.
Korak 4) Analizirajte izlaz. Sljedeฤi koraci se ponavljaju za svaki od 3 skupa podataka:
- Preglednik pokrenut.
- GuruOtvara se demo stranica 99 banke.
- Korisniฤko ime i lozinka se unose na stranici za prijavu.
- Tipka Reset briลกe vrijednosti.























