În ultimul tutorial Selenium, v-am prezentat Selenium Grid, care este un mediu de execuție a testului distribuit pentru a accelera executarea unui test de trecere.
Acum, la sfârșitul acestei serii cuprinzătoare de formare Selenium, învățăm teste avansate de seleniu și concepte conexe.
În acest și în următorul tutorial, vom vă va introduce în Castravetele – un cadru de dezvoltare condusă de comportament (BDD) care este utilizat cu Selenium pentru efectuarea testelor de acceptare.
Introducere în castravete
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 ușor de înțeles (cum ar fi limba engleză simplă) către analisti de afaceri, dezvoltatori, testeri etc.
Fișierele cu caracteristici Castravete 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 multe despre BDD și stilul de scriere a testelor BDD.
Castraveții pot fi folosiți împreună cu Selenium, Watir și Capybara etc. Castraveții acceptă multe alte limbi precum Perl, PHP, Python, Net etc. acest tutorial, ne vom concentra asupra Castravetelui cu Java ca limbaj.
Noțiuni de bază despre Castravete
Pentru a înțelege castravetele, trebuie să cunoaștem toate caracteristicile castravetelui și utilizarea acestuia.
# 1) Fișiere de caracteristici:
Fișierele de caracteristici sunt partea esențială a castravetelui 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ă: caracteristică funcționalitate conectare
Pentru a asigura funcționarea funcționalității conectării,
Vreau să rulez testul de castravete pentru a verifica dacă funcționează
Scenariu: Funcționalitate de conectare
Utilizatorul dat navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca „UTILIZATOR ”Și parola„ PASSWORD ”
Apoi conectarea ar trebui să aibă succes
Scenariu: Funcționalitate de conectare
Utilizatorul dat navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca„ USER1 ”și Parola„ PASSWORD1 ”
Apoi mesajul de eroare ar trebui să fie aruncat
# 2) Caracteristică:
Aceasta oferă informații despre funcționalitatea de afaceri la nivel înalt exemplu) și scopul aplicației supuse testului. Toată lumea ar trebui să poată înțelege intenția fișierului de caracteristici citind primul pas al funcției. Această parte este, în principiu, 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 vorba testul. Fiecare scenariu ar trebui să urmeze formatul dat, când și apoi. Acest limbaj este numit „pepene verde”.
- Date: Așa cum s-a menționat mai sus, date specifică condițiile prealabile. Este practic o stare cunoscută.
- Când: Aceasta 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.
- Apoi: Rezultatul sau rezultatul așteptat ar trebui să fie plasat aici. Pentru o instanță: verificați dacă datele de conectare sunt reușite, navigarea pe pagină reușită.
- Fundal: ori de câte ori este necesar să se efectueze orice pas în fiecare scenariu, acești pași trebuie să fie plasate în fundal. Pentru instanță: Dacă un utilizatorul trebuie să șteargă baza de date înainte de fiecare scenariu, apoi acei pași pot fi plasați într-un fundal.
- Și: Și este utilizat pentru a combina două sau mai multe același tip de acțiune.
Exemplu:
Funcție: Funcție de funcționalitate de conectare
Scenariu: Funcționalitate de conectare
Utilizatorul dat navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca „UTILIZATOR”
Și passwo rd ca „parolă”
Apoi conectarea ar trebui să aibă succes
Și pagina principală ar trebui afișată
Exemplu de fundal:
Fundal:
Dat utilizatorul s-a 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 diferite set de date. 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ă.
Funcție: Funcție de funcționalitate de conectare
Pentru a asigura funcționalitatea de conectare funcționează,
vreau să rulez test de castravete pentru a verifica că funcționează
Schița scenariului: funcționalitate de conectare
Utilizatorul dat navighează la SOFTWARETESTINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca < nume de utilizator > și parola < parola >
Atunci autentificarea ar trebui să aibă succes
Exemple:
| nume de utilizator | parolă |
| Tom | parolă1 |
| Harry | parolă2 |
| Jerry | parolă3 |
Notă:
- După cum se arată în exemplele de mai sus, numele coloanelor sunt transmise ca parametru la instrucțiunea When.
- În locul Scenariului, trebuie să utilizați Scenario Outline.
- 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:
Castraveții 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 permanență.
De exemplu: fișierele de caracteristici 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ă: Caracteristică funcționalitate conectare
Pentru a asigura funcționalitatea de conectare funcționează,
vreau să rulez testul de castravete pentru a verifica dacă funcționează
Scenariu Outline: Login Functionality
Utilizatorul dat navighează la SOFTWARETESTINGHELP. COM
Când utilizatorul se conectează utilizând numele de utilizator ca < nume de utilizator > și parola < parola >
Atunci autentificarea ar trebui să aibă succes
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 scenarii de testare a fumului, cât și pentru scenarii 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 atât pentru un fișier de caracteristici, cât și pentru scenariu.
@SmokeTest @ LoginTest
Funcție: Funcția de funcționalitate de conectare
Pentru a asigura funcționalitatea de conectare funcționează,
Vreau să rulez testul de castravete pentru a verifica dacă funcționează
Schița scenariului: funcționalitatea de conectare
Utilizatorul dat navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca < nume de utilizator > și Parola < parola >
Atunci autentificarea ar trebui să aibă succes
În mod similar, puteți specificați 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.
Funcție: Funcția de funcționalitate de conectare
Pentru a asigura funcționalitatea de conectare funcționează,
Vreau să rulez testul de castravete pentru a verifica dacă este working
@positiveScenario
Scenariu: Funcționalitate de conectare
Utilizatorul dat navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca „UTILIZATOR” și Parola „PASSWORD”
Atunci conectarea ar trebui să aibă succes
@negaviveScenario
Scenariu: Funcționalitate de conectare
Utilizatorul dat navighează la SOFTWARETETINGHELP.COM
Când utilizatorul se conectează utilizând numele de utilizator ca „USER1” și Parola „PASSWORD1”
Apoi, mesajul de eroare ar trebui să fie aruncat
# 6) JUnit Runner:
Pentru a rula fișierul caracteristică specific, castravetele folosește JUnit Runner standard și specifică etichetele î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 Junit Runner:
Î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 castravete pentru a rula scenarii diferite.
# 7) Raport despre castravete:
Castravete își 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 configurării proiectului castravete 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. Amintiți-vă că nu sunt necesare instalări software suplimentare pentru castravete.
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 utilizează 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 preluează date din pașii caracteristici și trec la definițiile pașilor.Ordinea parametrilor depinde de modul în care sunt trecuți din fișierul de caracteristici. Vă rugăm să consultați următorul tutorial pentru configurarea și maparea proiectului î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.
Când executați clasa de castravete, castravete va începe citirea pașilor fișierului de caracteristici. De exemplu, când executați @smokeTest, castravetele va citi Pasul caracteristică și va da o declarație de scenariu. De îndată ce castravetele găsește dată declarației, aceeași declarație dată 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 trece peste pas.
Concluzie
În acest tutorial, am acoperit caracteristicile instrumentul de castravete și utilizarea acestuia în scenariu în timp real.
Castravetele este un instrument cel mai preferat pentru multe proiecte, deoarece este ușor de înțeles, lizibil și conține funcționalități comerciale.
În capitolul următor, vom acoperi cum să configurați un proiect castravete – java și cum să integrați Selenium WebDriver cu Castravete.
Ultima actualizare: 18 ianuarie 2021 6:40 am