automation testing using cucumber tool
În ultimul tutorial Selenium, v-am prezentat Grilă de seleniu care este la executarea testelor distribuite mediu pentru a accelera executarea unui test de trecere .
Acum, la sfârșitul acestei serii cuprinzătoare de seleniu, învățăm în mod avansat Testarea seleniului și concepte conexe.
În acest tutorial și în următorul, vă vom introduce în Castravete - a Cadrul de dezvoltare a comportamentului (BDD) care este utilizat cu Selenium pentru efectuarea testelor de acceptare.
Ce veți învăța:
- Castravete Introducere
- Noțiuni de bază despre castraveți
- Configurarea proiectului Castravete:
- Concluzie
- Lectură recomandată
Castravete Introducere
Un castravete este un instrument bazat pe cadrul de dezvoltare comportamentală (BDD) care este utilizat pentru a scrie teste de acceptare pentru aplicația web. Permite automatizarea validării funcționale într-un format ușor de citit și de înțeles (cum ar fi limba engleză simplă) pentru analisti de afaceri, dezvoltatori, testeri etc.
Fișierele cu caracteristici de castraveți pot servi ca un document bun pentru toți. Există multe alte instrumente precum JBehave, care acceptă, de asemenea, cadrul BDD. Inițial, Cucumber a fost implementat în Ruby și apoi extins la Java framework. Ambele instrumente acceptă JUnit nativ.
Dezvoltarea condusă de comportament este o extensie a dezvoltării testate și este utilizată pentru a testa sistemul, mai degrabă decât pentru a testa o anumită bucată de cod. Vom discuta mai mult despre BDD și stilul de scriere a testelor BDD.
Castravetele pot fi utilizate împreună cu Seleniu, Watir și Capybara etc. Castravetele acceptă multe alte limbi cum ar fi Perl, PHP, Python, Net etc. În acest tutorial, ne vom concentra asupra Castravetelui cu Java ca limbaj.
Noțiuni de bază despre castraveți
Pentru a înțelege castravetele, trebuie să cunoaștem toate caracteristicile castravetelui și utilizarea acestuia.
servicii web odihnitoare testarea întrebărilor de interviu
# 1) Fișiere cu caracteristici:
Fișierele de caracteristici sunt partea esențială a castraveților care este utilizată pentru a scrie pași de automatizare a testelor sau teste de acceptare. Acesta poate fi folosit ca document live. Pașii sunt specificațiile aplicației. Toate fișierele de caracteristici se termină cu extensia .feature.
Exemplu de fișier de caracteristici:
Caracteristică : Funcționalitate de conectare
Pentru a asigura funcționarea funcționalității de conectare,
Vreau să fac testul de castravete pentru a verifica dacă funcționează
Scenariu : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se autentifică utilizând numele de utilizator ca „UTILIZATOR” și parola „PAROLĂ”
Atunci autentificarea ar trebui să aibă succes
Scenariu : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca „USER1” și parola „PASSWORD1”
Atunci mesajul de eroare trebuie aruncat
# 2) Caracteristică:
T el oferă informații despre funcționalitatea de afaceri la nivel înalt (consultați exemplul anterior) și scopul aplicației testate. Toată lumea ar trebui să poată înțelege intenția fișierului de caracteristici citind primul pas al funcției. Această parte este practic menținută pe scurt.
# 3) Scenariu:
Practic, un scenariu reprezintă o anumită funcționalitate care este testată. Văzând scenariul, utilizatorul ar trebui să poată înțelege intenția din spatele scenariului și despre ce este testul. Fiecare scenariu ar trebui să urmeze formatul dat, când și apoi. Această limbă este numită „castraveți”.
- Dat: Așa cum s-a menționat mai sus, date specifică precondițiile. Este practic un stat cunoscut.
- Când : Acesta este utilizat atunci când urmează să fie efectuată o acțiune. Ca și în exemplul de mai sus, am văzut când utilizatorul încearcă să se conecteze folosind numele de utilizator și parola, acesta devine o acțiune .
- Atunci: Rezultatul așteptat sau rezultatul ar trebui să fie plasat aici. Pentru instanță: verificați dacă datele de conectare sunt reușite, navigarea cu succes a paginii.
- Fundal: Ori de câte ori este necesar un pas pentru a efectua în fiecare scenariu, acești pași trebuie să fie plasați în fundal. De exemplu: dacă un utilizator trebuie să șteargă baza de date înainte de fiecare scenariu, acești pași pot fi plasați într-un fundal.
- Și : Și este folosit pentru a combina două sau mai multe același tip de acțiune.
Exemplu:
Caracteristică : Funcționalitate de conectare
Scenariu : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează folosind numele de utilizator ca „UTILIZATOR”
Și parola ca „parolă”
Atunci autentificarea ar trebui să aibă succes
Și Ar trebui afișată pagina principală
cum se adaugă elemente la o matrice în java
Exemplu de fundal:
Fundal:
Dat utilizator conectat ca administrator de baze de date
Și toate valorile nedorite sunt șterse
# 4) Schița scenariului:
Schițele scenariului sunt utilizate atunci când același test trebuie efectuat cu set de date diferite. Să luăm același exemplu. Trebuie să testăm funcționalitatea de conectare cu mai multe seturi diferite de nume de utilizator și parolă.
Caracteristică : Funcționalitate de conectare
Pentru a asigura funcționarea funcționalității de conectare,
Vreau să fac testul de castravete pentru a verifica dacă funcționează
Schița scenariului : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETESTINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca< nume de utilizator > și Parolă< parola >
Atunci autentificarea ar trebui să aibă succes
Exemple:
| nume de utilizator | parolă |
| Tom | parola1 |
| Harry | parola2 |
| Jerry | parola3 |
Notă:
- După cum se arată în exemplul de mai sus, numele coloanelor sunt transmise ca parametru către Când afirmație.
- În locul Scenariului, trebuie să utilizați Scenariul conturului.
- Exemplele sunt folosite pentru a transmite diferite argumente în format tabelar. Țevile verticale sunt utilizate pentru a separa două coloane diferite. Un exemplu poate conține multe coloane diferite.
# 5) Etichete:
Castravetele implicit rulează toate scenariile din toate fișierele de caracteristici. În proiectele în timp real, ar putea exista sute de fișiere de caracteristici care nu trebuie să ruleze în orice moment.
De exemplu : Fișierele cu funcții legate de testul de fum nu trebuie să ruleze tot timpul. Deci, dacă menționați o etichetă fără fum în fiecare fișier de caracteristici, care este legat de testul de fum și rulează testul de castravete cu eticheta @SmokeTest. Castravetele va rula numai acele fișiere caracteristice specifice etichetelor date. Vă rugăm să urmați exemplul de mai jos. Puteți specifica mai multe etichete într-un singur fișier de caracteristici.
Exemplu de utilizare a etichetelor unice:
@SmokeTest
Caracteristică : Funcționalitate de conectare
Pentru a asigura funcționarea funcționalității de conectare,
Vreau să fac testul de castravete pentru a verifica dacă funcționează
Schița scenariului : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETESTINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca< nume de utilizator > și Parolă< parola >
Atunci autentificarea ar trebui să aibă succes
Exemple:
| nume de utilizator | parolă |
| Tom | parola1 |
| Harry | parola2 |
| Jerry | parola3 |
Exemplu de utilizare a mai multor etichete:
După cum se arată în exemplul de mai jos, același fișier de caracteristici poate fi utilizat atât pentru scenariile de testare a fumului, cât și pentru scenariile de testare a autentificării. Când intenționați să rulați scriptul pentru un test de fum, utilizați @SmokeTest. În mod similar, atunci când doriți ca scriptul dvs. să ruleze pentru testul de conectare, utilizați eticheta @LoginTest.
Orice număr de etichete poate fi menționat pentru un fișier de caracteristici, precum și pentru scenariu.
@SmokeTest @LoginTest
Caracteristică : Funcționalitate de conectare
Pentru a asigura funcționarea funcționalității de conectare,
Vreau să fac testul de castravete pentru a verifica dacă funcționează
Schița scenariului : Funcționalitate de conectare
convertiți caracterul în întreg c ++
Dat utilizatorul navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca și parola
Atunci autentificarea ar trebui să aibă succes
Exemple:
| nume de utilizator | parolă |
| Tom | parola1 |
| Harry | parola2 |
| Jerry | parola3 |
În mod similar, puteți specifica etichete pentru a rula scenariul specific într-un fișier de caracteristici. Vă rugăm să verificați exemplul de mai jos pentru a rula un scenariu specific.
Caracteristică : Funcționalitate de conectare
Pentru a asigura funcționarea funcționalității de conectare,
Vreau să fac testul de castravete pentru a verifica dacă funcționează
@positiveScenario
Scenariu : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se autentifică utilizând numele de utilizator ca „UTILIZATOR” și parola „PAROLĂ”
Atunci autentificarea ar trebui să aibă succes
@negaviveScenario
Scenariu : Funcționalitate de conectare
Dat utilizatorul navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca „USER1” și parola „PASSWORD1”
Atunci mesajul de eroare ar trebui să arunce
# 6) JUnit Runner:
Pentru a rula fișierul de caracteristici specifice, castravetele folosește JUnit Runner standard și specifică etichete în @Cucumber. Opțiuni. Se pot da mai multe etichete utilizând virgulă separată. Aici puteți specifica calea raportului și tipul de raport pe care doriți să îl generați.
Exemplu de Junit Runner:
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Clasa publică JUnitRunner {} În mod similar, puteți da instrucțiuni castravetelui pentru a rula mai multe etichete. Exemplul de mai jos ilustrează modul de utilizare a mai multor etichete în castraveți pentru a rula scenarii diferite.
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) Raport de castravete:
Castravetele generează propriul format HTML. Cu toate acestea, o raportare mai bună se poate face folosind instrumentul Jenkins sau bambus. Detaliile raportării sunt prezentate în următorul subiect despre castravete.
Configurarea proiectului Castravete:
Explicația detaliată a proiectului de castravete configurat este disponibilă separat în următorul tutorial. Vă rugăm să consultați Tutorialul Castravetei Partea 2 din mai multe informații despre configurarea proiectului. Nu uitați că nu sunt necesare instalări software suplimentare pentru castraveți.
Implementarea fișierului Feature:
Trebuie să implementăm acești pași în Java pentru a testa fișierele de caracteristici. Trebuie să creați o clasă care să conțină acele declarații date, când și apoi. Castravetele își folosesc adnotările și toți pașii sunt încorporați în acele adnotări (date, când, atunci). Fiecare frază începe cu „^”, astfel încât castravetele să înțeleagă începutul pasului. În mod similar, fiecare pas se termină cu „$”. Utilizatorul poate folosi expresii regulate pentru a transmite diferite date de testare. Expresiile obișnuite preiau date din pașii caracteristici și trec la definițiile pasului. Ordinea parametrilor depinde de modul în care sunt trecuți din fișierul de caracteristici. Consultați următorul tutorial pentru configurarea proiectului și maparea între fișierele de caracteristici și clasele Java.
Exemplu:
Exemplul de mai jos este pentru a ilustra modul în care pot fi implementate fișierele de caracteristici.
În acest exemplu, nu am folosit niciun API de seleniu. Aceasta este doar pentru a arăta cum funcționează castravetele ca cadru independent. Vă rugăm să urmați următorul tutorial pentru integrarea seleniului cu castravete.
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”) } }
Când executați clasa de castravete, castravete va începe citirea pașilor fișierului de caracteristici. De exemplu, când executați @smokeTest, castravete va citi Caracteristică pas și Dat o declarație de scenariu . De îndată ce castravetele găsește Având în vedere afirmația, același lucru Dat declarația va fi căutată pentru fișierele dvs. java. Dacă același pas se găsește în fișierul java, atunci castravetele execută funcția specificată pentru același pas, altfel castravetele va sări peste pas.
Concluzie
În acest tutorial, am acoperit caracteristicile instrumentului pentru castraveți și utilizarea acestuia în scenariu în timp real.
Castravetele este un instrument preferat pentru multe proiecte, deoarece este ușor de înțeles, lizibil și conține funcționalități comerciale.
În capitolul următor , vom vorbi despre cum să configurați un proiect castravete - java și cum să integrați Selenium WebDriver cu Castravete.
Lectură recomandată
- Tutorial Castravete Seleniu: Integrare Castravete Java Seleniu WebDriver
- 30+ Cele mai bune tutoriale despre seleniu: învățați seleniul cu exemple reale
- Selenium Grid Tutorial: Configurare și exemplu de testare a browserului încrucișat
- Spock pentru integrare și testare funcțională cu seleniu
- Utilizarea instrumentului de automatizare Maven Build și configurarea proiectului Maven pentru Selenium - Tutorial Selenium # 24
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Tutoriale detaliate pentru eclipsă pentru începători
- Tutorial WAVE Accessibility Testing Tool