automation testing using cucumber tool
U prošlom vodiču za Selen upoznali smo vas s Mreža selena koji je do distribuirano izvršavanje testa okruženje za ubrzanje izvršavanja testnog polaganja .
Sada na kraju ove sveobuhvatne serije treninga Selenium učimo napredno Ispitivanje selena i srodni pojmovi.
U ovom i sljedećem vodiču upoznat ćemo vas s Krastavac - a Okvir za razvoj usmjeren na ponašanje (BDD) koji se koristi sa selenom za provođenje ispitivanja prihvatljivosti.
Što ćete naučiti:
Krastavac Uvod
Krastavac je alat zasnovan na okviru ponašanja vođenom razvojem (BDD) koji se koristi za pisanje testova prihvaćanja za web aplikaciju. Omogućuje automatizaciju funkcionalne provjere valjanosti u lako čitljivom i razumljivom formatu (poput običnog engleskog) poslovnim analitičarima, programerima, testerima itd.
Datoteke krastavaca mogu poslužiti kao dobar dokument za sve. Postoje mnogi drugi alati poput JBehave koji također podržavaju BDD okvir. U početku je Cucumber implementiran u Ruby, a zatim proširen na Java framework. Oba alata podržavaju izvorni JUnit.
Behaviour Driven Development produžetak je Test Driven Developmenta i koristi se za testiranje sustava, a ne za testiranje određenog dijela koda. Razgovarat ćemo više o BDD-u i stilu pisanja BDD testova.
Krastavac se može koristiti zajedno sa selenom, Watirom i Capybarom itd. Krastavac podržava mnoge druge jezike poput Perla, PHP-a, Pythona, Net-a itd. U ovom uputstvu koncentrirat ćemo se na Krastavac s Javom kao jezikom.
Osnove krastavaca
Da bismo razumjeli krastavac, moramo znati sve značajke krastavca i njegovu upotrebu.
skripta ljuske za usporedbu dviju datoteka
# 1) Značajke:
Datoteke značajki su bitni dio krastavca koji se koristi za pisanje koraka automatizacije ispitivanja ili testova prihvaćanja. To se može koristiti kao živi dokument. Koraci su specifikacija aplikacije. Sve datoteke značajki završavaju nastavkom .feature.
Primjer datoteke značajke:
Značajka : Značajka funkcionalnosti prijave
Kako bi se osigurala funkcionalnost prijave,
Želim pokrenuti test krastavaca kako bih provjerio da li radi
Scenarij : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETETINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao 'KORISNIK' i Lozinka 'LOZINKA'
Zatim prijava bi trebala biti uspješna
Scenarij : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETETINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao 'USER1' i Lozinka 'PASSWORD1'
Zatim treba izbaciti poruku o pogrešci
# 2) Značajka:
T on daje informacije o poslovnoj funkcionalnosti na visokoj razini (pogledajte prethodni primjer) i svrhu aplikacije koja se ispituje. Svatko bi trebao moći razumjeti namjeru datoteke značajke čitajući prvi korak značajke. Ovaj je dio u osnovi kratak.
# 3) Scenarij:
U osnovi, scenarij predstavlja određenu funkcionalnost koja je na testiranju. Uvidom u scenarij korisnik bi trebao moći razumjeti namjeru scenarija i što je test. Svaki scenarij treba slijediti dan, kada i zatim formatirati. Ovaj se jezik naziva 'kornišon'.
- Dano: Kao što je gore spomenuto, dano specificira preduvjete. U osnovi je to poznata država.
- Kada : Koristi se kada treba izvršiti neku radnju. Kao i u gornjem primjeru, vidjeli smo kada se korisnik pokuša prijaviti koristeći korisničko ime i lozinku, to postaje radnja .
- Zatim: Ovdje treba staviti očekivani ishod ili rezultat. Za primjer: provjerite je li prijava uspješna, uspješna navigacija stranicom.
- Pozadina: Kad god je potreban bilo koji korak za izvođenje u svakom scenariju, tada te korake treba smjestiti u pozadinu. Primjerice: Ako korisnik treba očistiti bazu podataka prije svakog scenarija, tada se ti koraci mogu staviti u pozadinu.
- I : I koristi se za kombiniranje dvije ili više istih radnji.
Primjer:
Značajka : Značajka funkcionalnosti prijave
Scenarij : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETETINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao 'KORISNIK'
I lozinka kao 'lozinka'
Zatim prijava bi trebala biti uspješna
I Treba prikazati početnu stranicu
kako otvoriti jnlp datotečni Windows 10
Primjer pozadine:
Pozadina:
S obzirom korisnik prijavljen kao administrator baza podataka
I sve vrijednosti smeća su obrisane
# 4) Pregled scenarija:
Obrisi scenarija koriste se kada se isti test mora provesti s različitim skupom podataka. Uzmimo isti primjer. Moramo testirati funkcionalnost prijave s više različitih skupova korisničkog imena i lozinke.
Značajka : Značajka funkcionalnosti prijave
Kako bi se osigurala funkcionalnost prijave,
Želim pokrenuti test krastavaca kako bih provjerio da li radi
Okvir scenarija : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETESTINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao< Korisničko ime > i lozinku< zaporka >
Zatim prijava bi trebala biti uspješna
Primjeri:
| korisničko ime | lozinka |
| Tom | lozinka1 |
| Harry | lozinka2 |
| Jerry | lozinka3 |
Bilješka:
- Kao što je prikazano u gornjem primjeru, nazivi stupaca predaju se kao parametar Kada izjava.
- Umjesto Scenarija, morate koristiti Okvir scenarija.
- Primjeri se koriste za prosljeđivanje različitih argumenata u tabličnom formatu. Okomite cijevi koriste se za odvajanje dva različita stupa. Primjer može sadržavati mnogo različitih stupaca.
# 5) Oznake:
Krastavac prema zadanim postavkama pokreće sve scenarije u svim datotekama značajki. U projektima u stvarnom vremenu mogu postojati stotine datoteka značajki koje se ne moraju pokretati u svakom trenutku.
Na primjer : Datoteke značajki povezane s testom dima ne moraju se stalno pokretati. Dakle, ako spomenite oznaku kao bezdimnu u svakoj datoteci značajki koja se odnosi na test dima i pokreće test krastavaca s @SmokeTest oznakom. Krastavac će pokretati samo one datoteke značajki specifične za određene oznake. Slijedite donji primjer. U jednoj datoteci značajki možete odrediti više oznaka.
Primjer upotrebe pojedinačnih oznaka:
@SmokeTest
Značajka : Značajka funkcionalnosti prijave
Kako bi se osigurala funkcionalnost prijave,
Želim pokrenuti test krastavaca kako bih provjerio da li radi
Okvir scenarija : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETESTINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao< Korisničko ime > i lozinku< zaporka >
Zatim prijava bi trebala biti uspješna
Primjeri:
| korisničko ime | lozinka |
| Tom | lozinka1 |
| Harry | lozinka2 |
| Jerry | lozinka3 |
Primjer upotrebe više oznaka:
Kao što je prikazano u donjem primjeru, ista datoteka značajki može se koristiti za scenarije ispitivanja dima, kao i za scenarij ispitivanja prijave. Kada namjeravate pokrenuti skriptu za test dima, upotrijebite @SmokeTest. Slično tome, kada želite da se vaša skripta pokrene za test prijave, koristite oznaku @LoginTest.
Bilo koji broj oznaka može se spomenuti za datoteku značajke, kao i za scenarij.
@SmokeTest @LoginTest
Značajka : Značajka funkcionalnosti prijave
Kako bi se osigurala funkcionalnost prijave,
Želim pokrenuti test krastavaca kako bih provjerio da li radi
Okvir scenarija : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETETINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao i Lozinka
Zatim prijava bi trebala biti uspješna
Primjeri:
| korisničko ime | lozinka |
| Tom | lozinka1 |
| Harry | lozinka2 |
| Jerry | lozinka3 |
Slično tome, možete odrediti oznake za pokretanje određenog scenarija u datoteci značajke. Molimo pogledajte donji primjer da biste pokrenuli određeni scenarij.
Značajka : Značajka funkcionalnosti prijave
Kako bi se osigurala funkcionalnost prijave,
Želim pokrenuti test krastavaca kako bih provjerio da li radi
@positiveScenario
Scenarij : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETETINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao 'KORISNIK' i Lozinka 'LOZINKA'
Zatim prijava bi trebala biti uspješna
što se c ++ koristi danas
@negaviveScenario
Scenarij : Funkcionalnost prijave
S obzirom korisnik prelazi na SOFTWARETETINGHELP.COM
Kada korisnik se prijavljuje koristeći Korisničko ime kao 'USER1' i Lozinka 'PASSWORD1'
Zatim poruka o pogrešci bi trebala baciti
# 6) JUnit trkač:
Za pokretanje datoteke specifičnih značajki krastavac koristi standardni JUnit Runner i navedite oznake u @Cucumber. Opcije. Pomoću odvojenih zarezom mogu se dati više oznaka. Ovdje možete odrediti put izvješća i vrstu izvješća koje želite generirati.
Primjer Junit trkača:
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Javna klasa JUnitRunner {} Slično tome, krastavcu možete dati upute za pokretanje više oznaka. Ispod je prikazan primjer upotrebe više oznaka u krastavcu za pokretanje različitih scenarija.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Izvještaj o krastavcima:
Krastavac stvara vlastiti HTML format. Međutim, bolje izvještavanje može se obaviti pomoću alata Jenkins ili bambusa. Pojedinosti izvješćivanja pokrivene su sljedećom temom krastavaca.
Postavljanje projekta krastavaca:
Detaljno objašnjenje postavljanja projekta krastavca dostupno je zasebno u sljedećem vodiču. Pogledajte Vodič za krastavce Part2 za više informacija o postavljanju projekta. Imajte na umu da za krastavac nisu potrebne dodatne instalacije softvera.
Implementacija datoteke značajke:
Ove korake moramo implementirati u Javi kako bismo testirali datoteke značajki. Trebate stvoriti klasu koja sadrži one dane, kada i tada izjave. Krastavac koristi svoje napomene i svi su koraci ugrađeni u te napomene (dati, kada, tada). Svaka fraza započinje s „^“, tako da krastavac razumije početak koraka. Slično tome, svaki korak završava s '$'. Korisnik može koristiti regularne izraze za prosljeđivanje različitih testnih podataka. Regularni izrazi uzimaju podatke iz koraka značajke i prelaze u definicije koraka. Redoslijed parametara ovisi o načinu prosljeđivanja iz datoteke značajke. Pogledajte sljedeći vodič za postavljanje projekata i mapiranje između datoteka značajki i Java klasa.
Primjer:
Ispod je primjer ilustracije kako se datoteke značajki mogu implementirati.
U ovom primjeru nismo koristili nijedan API selena. Ovo samo pokazuje kako krastavac djeluje kao samostalni okvir. Slijedite slijedeći vodič za integraciju selena s krastavcem.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Kada izvršite klasu trkača krastavaca, krastavac će početi čitati korake datoteke značajki. Na primjer, kada izvršite @smokeTest, krastavac će pročitati Značajka korak i S obzirom izjava od scenarij . Čim krastavac pronađe S obzirom na izjavu, isto S obzirom Izjava će se tražiti za vaše Java datoteke. Ako se isti korak pronađe u java datoteci, krastavac izvršava funkciju navedenu za isti korak, inače će krastavac preskočiti korak.
Zaključak
U ovom smo priručniku pokrili značajke alata za krastavce i njegovu upotrebu u scenariju u stvarnom vremenu.
Krastavac je najomiljeniji alat za mnoge projekte jer ga je lako razumjeti, čitati i sadrži poslovnu funkcionalnost.
U sljedećem poglavlju , obradit ćemo kako postaviti krastavac - java projekt i kako integrirati Selenium WebDriver s krastavcem.
Preporučena literatura
- Vodič za selenij krastavaca: Integracija Java Selenium WebDriver za krastavac
- 30+ najboljih vodiča za selen: naučite selen na stvarnim primjerima
- Vodič za selensku mrežu: Postavljanje i primjer testiranja u više preglednika
- Spock za integraciju i funkcionalna ispitivanja selenom
- Upotreba alata za automatizaciju gradnje Maven i postavljanje projekta Maven za selen - Vodič za selen br. 24
- Uvod u Selenium WebDriver - Vodič za selenij br. 8
- Dubinski vodiči pomračenja za početnike
- Vodič za alat za testiranje pristupačnosti WAVE-a