TestNG je okvir za testiranje koji pokriva različite vrste dizajna ispitivanja poput cjeline, funkcionalnosti, od kraja do kraja, korisničkog sučelja i integracijskog testa.
Možete pokrenuti jedan ili više paketa (paket ovdje znači enkapsulirati grupu klasa u odgovarajućem formatu direktora) stvaranjem XML-a i pokrenuti ga kroz maven.
U ovom vodiču naučit ćete-
- TestNG grupe s primjerom
- Postavljanje maven i Java staze u varijablu okruženja (za Windows korisnike)
- Uvod u XML i kako napraviti XML datoteke
- Drugi mehanizam umjesto grupiranja je "izuzeti" ili "uključiti" u testni XML
- Kako pokrenuti kod pomoću XML datoteke (video demonstracija)
TestNG grupe s primjerom
U Testngu koristimo grupe kada,
- Ne želimo zasebno definirati metode ispitivanja u različitim klasama (ovisno o funkcionalnosti) i
- Istodobno želite ignorirati (ne izvršavati) neke test slučajeve kao da ne postoje u kodu.
- Dakle, da bismo to izveli, moramo ih grupirati. To se postiže korištenjem mehanizma "uključi" i "izuzmi" podržanim u testNG.
U donjem primjeru prikazali smo sintaksu upotrebe grupa u XML datoteci.
@Test (grupe = {"bonding", "strong_ties"})
Ovdje koristimo 2 naziva grupe, tj. "Bonding" i "strong_ties" (ovo su logični nazivi koji se mogu mijenjati prema vašoj želji).
Oznaka
Prilagodite svoj XML da odaberete spomenutu grupu iz test klasa. Ispod je spomenuta sintaksa kako prijaviti grupe u XML datoteci, npr
Dakle, pretpostavimo da u klasi postoji 10 metoda ispitivanja.
Od njih,
- 6 metoda označeno je u grupi "lijepljenje" i
- 4 su u grupi "strong_ties"
Krećući se naprijed, postavit ćemo maven / Java put i upotrijebiti Eclipse IDE kako bismo demonstrirali upotrebu grupa koje koriste XML datoteke u projektu Maven koji se temelji na Javi.
Postavljanje maven i Java staze u varijablu okruženja (za Windows korisnike)
Molimo pogledajte https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Uvod u XML i kako napraviti XML datoteke
- Datoteka XML (Extensible Markup Language) u Maven framework-u sadrži informacije o jednom ili više testova i definirana je oznakom
. - Podaci o testiranju u XML-u predstavljeni su oznakom
i mogu sadržavati jednu ili više klasa TestNG. - Java klasa koja sadrži oznaku @Test iznad metoda ispitivanja definirana je kao TestNG metode.
Višestruke oznake koriste se u nizu za izgradnju funkcionalnog testNG xml-a poput
, i
- Prva je oznaka
koja ima logičko ime koje definira potpune informacije za testNG prijavljene za generiranje izvješća o izvršenju. - Drugo je
, imajte na umu da je logično ime koje sadrži informacije o izvještaju o izvršavanju testa kao što su prolazak, neuspjeh, preskakanje slučajeva ispitivanja i druge informacije poput ukupnog vremena za izvršenje i informacija o grupi - Treće je
, com.group.guru99 je paket koji se koristi, a naziv testne klase je TC_Class1. xml version = "1.0" encoding = "UTF-8"?>Ovaj XML koristit ćemo za nadolazeće video nedostatke.
Drugi mehanizam umjesto grupiranja je "isključi" ili "uključi" u testnom XML-u
Pretpostavimo da pronalazite upotrebu složenog mehanizma grupe, a zatim testNG XML olakšava funkciju za isključivanje / uključivanje testa.
Izuzmi oznaku : Sintaksa za oznaku za izuzećeUključi oznaku : Sintaksa za oznaku za uključivanje Napomena: Odjednom možemo uključiti / izuzeti više testnih slučajeva, a to funkcionira i s Grupama.
Kako pokrenuti kod pomoću XML datoteke (video demonstracija)
Objašnjenje Java koda i XML-a s grupom, izuzmite i uključite oznaku u XML.
- Scenarij : Pokrenite demonstracijsko web mjesto Guru99, provjerite je li nekoliko stvari na stranici za prijavu nakon toga unesite vjerodajnice i ponovo provjerite nekoliko novih stvari u aplikaciji kada ste prijavljeni.
Napomena : Svaki korak koji kodirate treba deklarirati u zasebnim metodama, ali kada se izvrši, izvršit će metode ispitivanja, ovisno o unosima u XML datoteci.
Metoda 1 : Inicijalizirajte preglednik i pokrenite URL (tc01LaunchURL ())
2. način : Potvrdite naslov stranice za prijavu (tc02VerifyLaunchPage ())
3. način : Unesite korisničko ime i lozinku u obrazac za prijavu (tc03EnterCredentials ())
4. metoda : Potvrdite prisutnost ID-a upravitelja na nadzornoj ploči korisnika (tc04VerifyLoggedInPage ())
5. način : Provjerite još nekoliko veza na korisničkoj nadzornoj ploči (tc05VerifyHyperlinks ())
Kôd za naš scenarij:
paket com.group.guru99;import java.util.concurrent.TimeUnit;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;javna klasa TC_Class1 {javni statički konačni WebDriver webDriver = novi FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Guru99 banka']";završni niz userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";završni niz userName_value = "mngr28642", password_value = "ydAnate";konačni String managerID = "// td [sadrži (tekst (), 'Id upravitelja')]";završni niz newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Ovaj test će inicijalizirati webDriver* /@Test (grupe = {"bonding", "strong_ties"})javna praznina tc01LaunchURL () {webDriver.manage (). window (). maximize ();webDriver.manage (). timeouts (). implicitnoWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Provjerit će prisutnost naslova na stranici za prijavu* /@Test (grupe = {"bonding"})javna praznina tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"Naslov početne stranice nije prikazan");System.out.println ("Prikazuje se naslov početne stranice");}/ *** Ovaj testni slučaj unijet će korisničko ime, lozinku, a zatim će kliknuti na* gumb za prijavu* /@Test (grupe = {"bonding", "strong_ties"})javna void tc03EnterCredentials () {webDriver.findElement (By.xpath (korisničko ime_element)). sendKeys (korisničko ime_value);webDriver.findElement (By.xpath (element_ lozinke)). sendKeys (vrijednost_vrijednosti lozinke);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Ovaj test će provjeriti prisutnost ID-a jasle na DashBoardu* /@Test (grupe = {"strong_ties"})javna praznina tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Oznaka ID-a upravitelja nije prikazana");System.out.println ("Prikazuje se oznaka ID-a jaslice");}/ *** Ovaj test će provjeriti prisutnost veze novog kupca* I veza FundTransfer u lijevom panelu* /@Test (grupe = {"bonding"})javna praznina tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer))). IsEnabled (),"Nova korisnička hiperveza nije prikazana");System.out.println ("Prikazuje se hiperveza novog kupca");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Hiperveza za prijenos sredstava nije prikazana");System.out.println ("Prikazuje se hiperveza za prijenos sredstava");}}Napomena: Vjerodajnice vrijede samo 20 dana, pa ako pokušavate pokrenuti kôd na lokalnom računalu, možda ćete se suočiti s pogreškom s nevažećim vjerodajnicama. U nastavku potražite korake za generiranje vjerodajnica za prijavu:
- Pokrenite http://www.demo.guru99.com
- U okvir unesite svoj e-mail.
- Pritisnite enter i na zaslonu ćete vidjeti svoje podatke za prijavu.
Objašnjenje koda:
Kao što je gore spomenuto, stvorili smo 5 testnih slučajeva za izvođenje svake radnje neovisnim metodama.
Možete primijetiti da smo svakoj metodi pridružili parametar grupe koji sadrži neku vrijednost.
U osnovi, ovo su nazivi grupa koje razlikuju, tj. "Strong_ties" i "bonding".
- Prva i Treća metoda označene su sa "bonding", "strong_ties", što znači da će se, ako se XML ažurira u bilo kojoj grupi, pokrenuti ovaj testni slučaj.
- Druga metoda označena je samo s grupom "vezivanje", to znači da ako se XML ažurira grupom za vezivanje. Samo u tom slučaju pokrenut će se ovaj testni slučaj.
- Četvrti testni slučaj označen je sa strong_ties group, što znači da će se ovaj testni slučaj pokrenuti samo ako se XML ažurira s imenom strong_ties grupe.
- Posljednji, ali ne najmanje važni, peti testni slučaj pridružen je grupi za povezivanje, što znači da će se ovaj testni slučaj pokrenuti samo ako je XML ažuriran nazivom vezene grupe.
Dakle, ukupno imamo 4 scenarija;
- Želimo pokrenuti sve test slučajeve, bez obzira na naziv grupe. U tom ćemo slučaju ukloniti oznaku grupe iz pokretanja XML-a.
- Želimo pokrenuti testni slučaj nekoliko testova koji se odnose samo na bilo koju skupinu, tj. Strong_ties ili bonding
- Molimo obratite se:
- U ovom se videozapisu parametar Group komentira iz izvođenja XML-a. Stoga ćete vidjeti da su svi testni slučajevi izvršeni.
- U nastavku videozapisa, sada smo u XML uključili naziv grupe, možete vidjeti samo test slučajeve koji su specifični za tu grupu.
- Koristimo mehanizam Exclude da bismo isključili test slučaj:
- Molimo obratite se
- Vidite da smo koristili izuzetak nekoliko testnih slučajeva (tc02) ispisivanjem njihovog imena u pokretanju XML-a. U konačnom rezultatu navedeni testovi nisu pokrenuti.
- Na kraju, koristimo mehanizam za uključivanje testiranja da bismo uključili test slučajeve (tc01LaunchURL, tc03EnterCredentials i tc05VerifyHyperlinks)
- Molimo obratite se
- U ovom ćete videozapisu vidjeti da se test slučajevi spomenuti u XML-u izvode samo tijekom izvođenja testa.
Preuzmite kod sa spomenutog URL-a, on će sadržavati sve vrste testXML:
Preuzmite gornji kod
Zaključak
Ovdje smo naučili relativno nov način za pokretanje test slučajeva pomoću XML-a u projektu Maven.
Započeli smo pružanjem kratkog uvoda o testNG-u, a nastavili s potpunom tehničkom specifikacijom grupa, izuzmite i uključite.