how use testng framework
U posljednjih nekoliko vodiča osvijetlili smo osnovne i najčešće korištene naredbe WebDriver. Također smo naučili o strategijama lociranja elemenata korisničkog sučelja i njihovom uključivanju u testne skripte. I zato smo razvili svoj vrlo prva skripta za automatizaciju WebDriver-a .
Nastavljajući s ovim vodičem, razgovarali bismo o TestNG-u, njegovim značajkama i aplikacijama.
TestNG je napredni okvir dizajniran na način da iskoristi blagodati programera i testera. Za ljude koji već koriste JUnit, TestNG ne bi izgledao drugačije s nekim unaprijed značajkama. Početkom okvira, JUnit je stekao enormne rezultate popularnost u Java aplikacijama, programerima Java i Java testerima, uz nevjerojatno povećanje kvalitete koda.
Vidi također=> Vodič za JUnit i njegova upotreba u skriptama Selenium
Iako je jednostavan za korištenje i izravan okvir, JUnit ima svoja ograničenja koja dovode do potrebe za donošenjem TestNG u sliku. TestNG je stvorio hvaljeni programer nazvan 'Cedric Beust'. TestNG je okvir otvorenog koda koji se distribuira pod softverskom licencom Apache i lako je dostupan za preuzimanje.
Govoreći o našem zahtjevu da uvedemo TestNG s WebDriver-om jest da on pruža učinkovit i djelotvoran format rezultata testa koji se, zauzvrat, može podijeliti sa dionicima kako bi se uvidio u zdravlje proizvoda / aplikacije, čime se eliminira nedostatak nesposobnosti WebDrivera da generira izvješća o ispitivanjima. TestNG ima ugrađeni mehanizam za rukovanje iznimkama koji omogućuje pokretanje programa bez neočekivanog završetka.
I TestNG i JUnit pripadaju istoj familiji Unit Frameworks gdje je TestNG proširena verzija na JUnit i opsežnije se koristi u trenutnoj eri testiranja.
Što ćete naučiti:
- Značajke TestNG-a
- Instalacija TestNG-a u Eclipseu
- Izrada uzorka projekta TestNG
- Izrada klase TestNG
- Izvršenje TestNG skripte
- HTML izvješća
- Postavljanje prioriteta u TestNG
- Prolaz kroz kôd
- Bilješke TestNG-a
- Zaključak
- Preporučena literatura
Značajke TestNG-a
- Podrška za napomene
- Podrška za parametriranje
- Metodologija izvršenja unaprijed koja ne zahtijeva stvaranje testnih paketa
- Podrška za podatkovno testiranje pomoću davatelja podataka
- Omogućuje korisniku postavljanje prioriteta izvršavanja za metode ispitivanja
- Podržava sigurno okruženje prijetnje pri izvršavanju više niti
- Spremno podržava integraciju s raznim alatima i dodacima poput alata za izgradnju (Ant, Maven itd.), Integriranog razvojnog okruženja (Eclipse).
- Omogućuje korisniku učinkovite načine generiranja izvješća pomoću ReportNG-a
Postoje razne prednosti koje TestNG čine superiornijim od JUnit-a. Neki od njih su:
- Napredne i jednostavne bilješke
- Mogu se postaviti obrasci izvršavanja
- Istodobno izvršavanje testnih skripti
- Mogu se postaviti ovisnosti testnih slučajeva
Bilješkama prethodi simbol '@' u TestNG i JUnit.
Pa krenimo sada s dijelom za instalaciju i implementaciju.
Mrežna mreža za automatizaciju ispitivanja selena
# 1) LambdaTest
TestNG okvir najbolje je koristiti s mrežom Selenium Grid kao što je LambdaTest koja vam pomaže izvršiti paralelno testiranje na 2000+ stvarnih preglednika i operativnih sustava, bez muke oko održavanja vlastite mreže Selenium Grid.
Možete dobiti razne zapisnike kao što su zapisnici naredbi, mrežni zapisnici, neobrađeni zapisnici Selenium-a, metapodaci itd., Zajedno s cjelovitim video-zapisom vaše skripte za testiranje programa Selenium za uklanjanje pogrešaka.
LambdaTest također nudi integracije s više CI / CD alata kao što su Jenkins, Travis CI, CircleCI, itd. Za kontinuirano testiranje. LambdaTest vam također omogućuje integraciju s brojnim alatima za upravljanje projektima radi jednostavne prijave grešaka.
=> Posjetite web mjesto LambdaTestInstalacija TestNG-a u Eclipseu
Slijedite korake u nastavku za preuzimanje i instalaciju programa TestNG na eclipse:
Korak 1: Pokrenite eclipse IDE -> Kliknite opciju Pomoć u izborniku -> Odaberite opciju 'Eclipse Marketplace ..' u padajućem izborniku.
Korak 2: Unesite ključnu riječ 'TestNG' u okvir za pretraživanje i kliknite gumb 'Idi' kako je prikazano dolje.
3. korak: Čim korisnik klikne na gumb 'Idi', prikazuju se rezultati koji se podudaraju s nizom pretraživanja. Sada korisnik može kliknuti gumb Instaliraj da instalira TestNG.
4. korak: Čim korisnik klikne na gumb Instaliraj, od njega se traži prozor za potvrdu instalacije. Kliknite gumb 'Potvrdi'.
Korak 5: U sljedećem koraku aplikacija će zatražiti da prihvatite licencu, a zatim kliknite gumb 'Završi'.
Korak 6: Instalacija je započeta sada, a napredak se može vidjeti na sljedeći način:
Savjetuje nam se da ponovno pokrenemo našu pomrčinu kako bi odražavali izvršene promjene.
Nakon ponovnog pokretanja, korisnik može provjeriti instalaciju TestNG-a pomicanjem do 'Preferences' iz 'Window' opcije na traci izbornika. Pogledajte slijedeću sliku za isto.
(Kliknite na sliku za uvećan prikaz)
Izrada uzorka projekta TestNG
Počnimo sa stvaranjem TestNG projekta u eclipse IDE-u.
Korak 1: Kliknite opciju Datoteka u izborniku -> Kliknite Novo -> Odaberi Java projekt.
Korak 2: Unesite naziv projekta kao 'DemoTestNG' i kliknite gumb 'Dalje'. Kao završni korak kliknite gumb 'Završi' i vaš je Java projekt spreman.
3. korak: Sljedeći je korak konfiguriranje knjižnice TestNG u novostvoreni Java projekt. Za isto kliknite karticu 'Knjižnice' u odjeljku Konfiguriranje puta gradnje. Kliknite 'Dodaj biblioteku' kao što je prikazano u nastavku.
4. korak: Korisnik će biti izložen dijaloškom okviru koji ga promovira da odabere knjižnicu koju će konfigurirati. Odaberite TestNG i kliknite gumb 'Dalje' kako je prikazano ispod na slici. Na kraju kliknite gumb 'Završi'.
TestNG je sada dodan projektu Java i potrebne knjižnice mogu se vidjeti u istraživaču paketa nakon proširenja projekta.
Dodajte sve preuzete Selenium biblioteke i staklenke u put izrade projekta, kao što je prikazano u prethodnom vodiču.
Izrada klase TestNG
Sad kad smo obavili sve osnovne postavke za početak izrade testne skripte pomoću TestNG-a. Stvorimo ogledni skript pomoću TestNG-a.
Korak 1: Proširite projekt 'DemoTestNG' i prijeđite na mapu 'src'. Desnom tipkom miša kliknite paket 'src' i prijeđite na Novo -> Ostalo.
Korak 2: Proširite opciju TestNG i odaberite opciju klase 'TestNG' i kliknite gumb 'Dalje'.
3. korak: Namjestite potrebne detalje kako slijedi. Navedite mapu Izvor, naziv paketa i naziv klase TestNG i kliknite gumb Završi. Kao što je vidljivo iz donje slike, korisnik također može provjeriti razne oznake TestNG koje bi se odražavale u shemi klase testa. O napomenama o TestNG raspravljat će se kasnije u ovoj sesiji.
Gore spomenuta klasa TestNG stvorila bi se sa zadanom shemom.
Sad kad smo stvorili osnovnu osnovu za testnu skriptu TestNG, ubacimo sada stvarni testni kod. Koristimo isti kod koji smo koristili u prethodnoj sesiji.
Scenarij:
- Pokrenite preglednik i otvorite 'gmail.com'.
- Provjerite naslov stranice i ispišite rezultat provjere.
- Unesite korisničko ime i lozinku.
- Kliknite gumb Prijava.
- Zatvorite web preglednik.
Kodirati:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Objašnjenje koda s obzirom na TestNG
1) @Test - @Test je jedan od Bilješke za TestNG . Ova napomena omogućuje izvršavanju programa da zna da je metoda označena kao @Test ispitna metoda. Da bismo mogli koristiti različite TestNG napomene, moramo uvesti paket “ uvoz org.testng.notacije. * ”.
dva) Nije potrebna metoda main () tijekom stvaranja test skripti pomoću TestNG-a. Izvršavanje programa vrši se na temelju bilješki.
3) U izjavi smo koristili klasu Assert za usporedbu očekivane i stvarne vrijednosti. Klasa Assert koristi se za izvođenje različitih provjera. Da bismo mogli koristiti različite tvrdnje, moramo uvesti “ uvoz org.testng.Assert ”.
Izvršenje TestNG skripte
TestNG test skripta može se izvršiti na sljedeći način:
=> Desni klik bilo gdje unutar klase unutar uređivača ili java klase u istraživaču paketa, odaberite opciju 'Pokreni kao' i kliknite na 'TestNG Test'.
Rezultat TestNG prikazuje se u dva prozora:
- Prozor konzole
- Prozor rezultata testNG
Pogledajte donje prozore zaslona za prozore rezultata:
koji je moj WiFi sigurnosni ključ
(Kliknite na sliku za uvećan prikaz)
HTML izvješća
TestNG dolazi s velikom sposobnošću generiranja korisniku čitljivih i razumljivih HTML izvještaja za izvršavanje testa. Ta se izvješća mogu pregledavati u bilo kojem pregledniku, a mogu se pregledavati i putem ugrađene Eclipseove podrške za preglednik.
Da biste generirali HTML izvješće, slijedite korake u nastavku:
Korak 1: Izvršite novostvorenu klasu TestNG. Osvježite projekt koji sadrži klasu TestNG desnim klikom na njega i odabirom opcije „Osvježi“.
Korak 2: Mapa koja se naziva 'test-output' generirat će se u projektu na razini mape 'src'. Proširite mapu 'test-output' i otvorite datoteku 'emailable-report.html' pomoću preglednika Eclipse. HTML datoteka prikazuje rezultat nedavnog izvršavanja.
3. korak: HTML izvješće otvorit će se u okruženju pomrčine. Pogledajte donju sliku za isto.
Osvježite stranicu da biste vidjeli rezultate za nova izvršenja ako ih ima.
Postavljanje prioriteta u TestNG
Isječak koda
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Prolaz kroz kôd
Ako se testna skripta sastoji od više od jedne testne metode, prioritet i redoslijed izvršavanja mogu se postaviti pomoću oznake TestNG „@Test“ i postavljanjem vrijednosti za parametar „prioriteta“.
U gornjem isječku koda, sve su metode označene uz pomoć @Test, a prioriteti su postavljeni na 0, 1 i 2. Stoga je redoslijed izvršenja u kojem bi se izvršile metode ispitivanja:
- Metoda1
- Metoda2
- Metoda3
Podrška za bilješke
Postoji niz bilješki u TestNG-u i JUnit-u. Suptilna je razlika u tome što TestNG pruža još nekih napomena za JUnit.
Bilješke TestNG-a
Slijedi popis najkorisnijih i najpovoljnijih napomena u TestNG-u:
Bilješka | Opis |
---|---|
@Nakon nastave | Bilješka obavještava sustav da se metoda označena kao @AfterClass mora izvršiti nakon izvršavanja posljednje ispitne metode unutar iste klase ispitivanja |
@Test | Bilješka obavještava sustav da je metoda označena kao @Test ispitna metoda |
@BeforeSuite | Bilješka obavještava sustav da se metoda izvršena s oznakom @BeforeSuite mora izvršiti prije izvođenja testova u cijelom paketu |
@AfterSuite | Bilješka obavještava sustav da se metoda izvršena s oznakom @AfterSuite mora izvršiti nakon izvođenja testova u cijelom paketu |
@BeforeTest | Bilješka obavještava sustav da se metoda koja je označena kao @BeforeTest mora izvršiti prije izvođenja bilo koje metode ispitivanja u istoj klasi ispitivanja |
@AfterTest | Bilješka obavještava sustav da se metoda označena kao @AfterTest mora izvršiti nakon izvršavanja bilo koje metode ispitivanja unutar iste klase ispitivanja |
@BeforeClass | Bilješka obavještava sustav da se metoda koja je označena kao @BeforeClass mora izvršiti prije izvođenja prve test metode u istoj klasi ispitivanja |
@BeforeMethod | Bilješka obavještava sustav da se metoda označena kao @BeforeMethod mora izvršiti prije izvođenja bilo koje i svake ispitne metode unutar iste klase ispitivanja |
@AfterMethod | Bilješka obavještava sustav da se metoda označena kao @AfterMethod mora izvršiti nakon izvršavanja bilo koje i svake metode ispitivanja u istoj klasi ispitivanja |
@BeforeGroups | Bilješka obavještava sustav da je metoda označena kao @BeforeGroups metoda konfiguracije koja uključuje grupu i koja se mora izvršiti prije izvršavanja prve ispitne metode grupe |
@AfterGroups | Bilješka obavještava sustav da je metoda označena kao @AfterGroups metoda konfiguracije koja uvrštava grupu i koja se mora izvršiti nakon izvršavanja posljednje ispitne metode grupe |
Bilješka : Mnoge od gore spomenutih bilješki također se mogu izvoditi u okviru JUnit 3 i JUnit 4.
Zaključak
Kroz ovaj tutorial pokušali smo vas upoznati s testnim okvirom temeljenim na javi nazvanim TestNG. Sesiju smo započeli instalacijom okvira, a krenuli smo sa stvaranjem skripti i temama unaprijed. Razgovarali smo o svim bilješkama koje je pružio TestNG. Implementirali smo i izvršili prvu testnu skriptu TestNG koristeći napomene i tvrdnje.
Sažetak članka:
- TestNG je napredni okvir osmišljen na način da iskoristi blagodati programera i testera.
- TestNG je okvir otvorenog koda koji se distribuira pod softverskom licencom Apache i lako je dostupan za preuzimanje.
- Smatra se da je TestNG superiorniji od JUnit-a zbog svojih naprednih značajki.
- Značajke TestNG-a
- Podrška za bilješke
- Metodologija izvršenja unaprijed koja ne zahtijeva stvaranje testnih paketa
- Podrška za parametriranje
- Podrška za podatkovno testiranje pomoću davatelja podataka
- Postavljanje prioriteta izvršavanja za metode ispitivanja
- Podržava sigurno okruženje prijetnje pri izvršavanju više niti
- Spremno podržava integraciju s raznim alatima i dodacima poput alata za izgradnju (Ant, Maven itd.), Integriranog razvojnog okruženja (Eclipse).
- Omogućuje korisniku učinkovite načine generiranja izvješća pomoću ReportNG-a
- Prednosti TestNG-a u odnosu na JUnit
- Dodano unaprijed i lako bilješke
- Mogu se postaviti obrasci izvršavanja
- Istodobno izvršavanje testnih skripti
- Mogu se postaviti ovisnosti testnih slučajeva
- TestNG je besplatno dostupan i može se lako instalirati u Eclipse IDE pomoću Eclipse Market.
- Nakon instalacije, TestNG bi bio dostupan kao knjižnica u okruženju Eclipse.
- Izradite novi Java projekt i konfigurirajte put gradnje pomoću knjižnice TestNG.
- Stvorite novu klasu TestNG širenjem stvorenog projekta TestNG i prijeđite na njegovu mapu “src”. Desnom tipkom miša kliknite paket 'src' i prijeđite na Novo -> Ostalo. Odaberite opciju klase TestNG.
- @Test jedna je od bilješki koje nudi TestNG. Ova napomena omogućuje izvršavanju programa da zna da je metoda označena kao @Test ispitna metoda. Da bismo mogli koristiti različite TestNG napomene, moramo uvesti paket “ uvoz org.testng.notacije. * ”.
- Nije potrebna metoda main () tijekom stvaranja test skripti pomoću TestNG-a.
- Klasu Assert koristimo uspoređujući očekivanu i stvarnu vrijednost. Klasa Assert koristi se za izvođenje različitih provjera. Da bismo mogli koristiti različite tvrdnje, moramo uvesti “ uvoz org.testng.Assert ”.
- Ako se testna skripta sastoji od više testnih metoda, prioritet i redoslijed izvršavanja mogu se postaviti pomoću oznake TestNG „@Test“ i postavljanjem vrijednosti za parametar „prioriteta“.
- TestNG ima mogućnost automatskog generiranja čovjeku čitljivih izvještaja o izvršenju testa. Ta se izvješća mogu pregledavati u bilo kojem pregledniku, a mogu se pregledavati i putem ugrađene podrške preglednika Eclipse.
Sljedeći vodič # 13 : Krećući se prema nadolazećim vodičima iz serije Selenium, koncentrirali bismo se na rukovanje raznim vrstama web elemenata dostupnih na web stranicama. Stoga, u sljedećem uputstvu usredotočili bismo se na 'padajuća padajuća slova' i primijenili bismo njihove strategije rukovanja. Također bismo razgovarali o WebDriver's Class klasi i njezinim metodama za odabir vrijednosti u padajućim izbornicima.
Primjedba za čitatelje : Dok je naš sljedeći vodič iz serije Selenium u načinu obrade, čitatelji mogu početi stvarati vlastite osnovne WebDriver skripte pomoću okvira TestNG.
Za više unaprijed skripti i koncepata, uključite što više napomena i tvrdnji u svoje klase TestNG i izvršite ih pomoću TestNG okruženja. Također, analizirajte HTML izvješća koja je generirao TestNG.
Preporučena literatura
- Kako koristiti Firebug za stvaranje skripti za selen - Vodič za selen br. 4
- Uvod u JUnit Framework i njegovu upotrebu u skripti za selenij - Vodič za selen br. 11
- Naučite kako koristiti TestNG napomene u selenu (s primjerima)
- Vodič za selenij krastavaca: Integracija Java Selenium WebDriver za krastavac
- Kako locirati elemente u preglednicima Chrome i IE za izgradnju skripti za selen - Vodič za selenij br. 7
- Stvaranje okvira za selenij i pristupanje testnim podacima iz programa Excel - Tutorial br. 21
- Izrada generičkih lijekova i testova - Vodič za selen br. 22
- Dubinski vodiči pomračenja za početnike