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.

  • ???? Osnovna definicija: Cucumber je alat za testiranje BDD-a koji opisuje ponaลกanje aplikacije jednostavnim jezikom koristeฤ‡i Gherkin i Selenium pokreฤ‡e radnje preglednika ispod.
  • ๐Ÿค Most dionika: Cucumber povezuje poslovne analitiฤare, ruฤne testere, inลพenjere automatizacije i razvojne programere putem zajedniฤke, ฤitljive specifikacije testiranja.
  • ???? Potrebne staklenke: Selenium samostalan, Cucumber-jezgra, Cucumber-Java, Cucumber-junit, kiseli krastavac, JUnit, a Hamcrest-core tvore minimalni skup ovisnosti.
  • ๐Ÿงฑ Tri projektne datoteke: .feature datoteka sa scenarijima, klasom Steps.java za definiranje koraka i Runner.java TestRunnerom s @CucumberOpcije ljepila.
  • ๐Ÿ” Testovi temeljeni na podacima: Koristite tablice Scenarij i primjeri za pokretanje istog tijeka na viลกe skupova vjerodajnica u jednom izvrลกavanju.

Selenium sa Cucumber (BDD Framework Tutorial)

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:

  1. Softverski inลพenjer i poslovni analitiฤar.
  2. Ruฤni tester i automatizirani tester.
  3. 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.

Cucumber sa Selenium Pregled BDD okvira

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/.

Selenium stranica za preuzimanje jar datoteka

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:

U potrazi za Cucumber Core jar u Maven repozitoriju

Na sljedeฤ‡oj stranici kliknite verziju 1.2.2:

odabrati Cucumber Jezgrena verzija 1.2.2 u Mavenu

Na sljedeฤ‡em zaslonu kliknite Preuzmi da biste preuzeli Cucumber Osnovna jar datoteka:

Preuzimanje 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.

stvoriti CucumberKontaktSelenium Java projekt u Eclipse

Java konfiguracija naziva projekta u Eclipse

Korak 2) Dodajte jar datoteke u projekt.

Desnom tipkom miลกa kliknite projekt > Svojstva > Java Putanja izgradnje. Dodajte sve biblioteke koje ste ranije preuzeli.

dodati Cucumber i Selenium jar datoteke u Java Put izgradnje

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.

Stvori mapu Znaฤajke u Eclipse projekt

Unesite naziv mape โ€žZnaฤajkeโ€œ i kliknite Zavrลกi.

Konfigurirajte naziv mape Znaฤajke u Eclipse

Mapa znaฤajki vidljiva u pregledniku projekata

Sada stvorite datoteku znaฤajki unutar mape Znaฤajke pod nazivom MyTest.featurePostupak je sliฤan stvaranju mape.

Izradi datoteku MyTest.feature u mapi Features

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:

Runner.java TestRunner skripta za Cucumber

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:

Skripta Steps.java i stablo projekta u Eclipse

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.

Izvrลกite Runner.java za pokretanje Cucumber test

Korak 8) Analizirajte izlaz.

Prilikom izvrลกavanja Runner.java, Cucumber ispisuje isti tekst definiran u Steps.java u konzolu.

Izlaz konzole iz Cucumber izvrลกenje testa

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.

potvrditi Selenium jar datoteka se nalazi na putu klase projekta

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:

Scenarij 2 Koraci.java s Selenium logika

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.

Prikaz animacije scenarija 2 Cucumber Selenium probni test

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 |

Datoteka znaฤajki s tablicom nacrta scenarija i primjera

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();
    }
}

Aลพurirana datoteka Steps.java s parametriziranim vjerodajnicama

Korak 3) Izvrลกite aลพurirani skript.

Donji zaslon prikazuje uspjeลกno izvrลกenje i vrijeme potrebno za svaki skup podataka.

Uspjeลกno izvrลกenje scenarija 3 s tri skupa 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.

Animacija scenarija 3 koja prikazuje parametrizirano Cucumber probni test

Pitanja i odgovori

Cucumber je BDD okvir koji pokreฤ‡e scenarije napisane u Gherkinu. Selenium je biblioteka za automatizaciju preglednika koja pokreฤ‡e web stranice. Cucumber ne komunicira izravno s preglednicima โ€” poziva Selenium definicije koraka za izvoฤ‘enje stvarnih radnji korisniฤkog suฤelja.

Cucumber Datoteke znaฤajki koriste Gherkin, jednostavni engleski jezik specifiฤan za domenu koji organizira scenarije s kljuฤnim rijeฤima kao ลกto su Znaฤajka, Scenarij, Dano, Kada, Zatim, I, Ali, Nacrt scenarija i Primjeri. Gherkin mogu ฤitati i tehniฤki i netehniฤki dionici.

Koristite kljuฤnu rijeฤ Scenario Outline s tablicom Primjeri. Cucumber izvrลกava isti scenarij jednom po retku, zamjenjujuฤ‡i rezervirana mjesta kao ลกto su i s vrijednostima iz svakog retka. Ovo je standardni obrazac voฤ‘en podacima u Cucumber.

Umjetna inteligencija generira Gherkinove scenarije iz korisniฤkih priฤa, preporuฤuje definicije koraka, popravlja neispravne lokatore u Seleniumi predlaลพe primjere podataka. AI asistenti takoฤ‘er oznaฤavaju duplicirane scenarije, slabe tvrdnje i zastarjele testove, ลกto BDD paket odrลพava kako se aplikacija mijenja.

Da. Pomoฤ‡nici za kodiranje umjetne inteligencije ฤitaju Gherkinove datoteke znaฤajki i generiraju podudaranje Java ili definicije Kotlin koraka, ukljuฤujuฤ‡i Selenium Pozivi WebDrivera, strategije lokatora i povezivanje parametara. Programeri zatim poboljลกavaju generirani kod, ลกto dramatiฤno smanjuje standardne postavke prilikom samoprocjene.ping novi BDD apartmani.

Saลพmite ovu objavu uz: