Dva su glavna slušatelja.
- Slušatelji WebDrivera
- Slušatelji TestNG-a
U ovom uputstvu razgovarat ćemo o slušateljima Testng-a. Evo što ćete naučiti-
- Što su slušatelji u TestNG-u?
- Vrste slušatelja u TestNG-u
- Testni scenarij:
- Koraci za stvaranje slušatelja TestNG
- Korištenje slušatelja za više klasa.
Što su slušatelji u TestNG-u?
Slušatelj je definiran kao sučelje koje mijenja zadano ponašanje TestNG-a. Kao što naziv sugerira, slušatelji "slušaju" događaj definiran u skripti selena i ponašaju se u skladu s tim. Koristi se u selenu primjenom sučelja slušatelja. Omogućuje prilagođavanje TestNG izvješća ili dnevnika. Dostupne su mnoge vrste TestNG slušatelja.
Vrste slušatelja u TestNG-u
Postoji mnogo vrsta slušatelja što vam omogućuje da promijenite ponašanje TestNG-a.
Ispod je nekoliko slušatelja TestNG-a:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- Ikonfigurabilno,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Iznad sučelja nazivaju se TestNG slušatelji. Ova sučelja koriste se u selenu za generiranje dnevnika ili prilagodbu izvještaja TestNG.
U ovom uputstvu implementirat ćemo ITestListener.
ITestListener ima sljedeće metode
- OnStart- OnStart metoda poziva se kad započne bilo koji test.
- onTestSuccess- metoda onTestSuccess poziva se na uspjeh bilo kojeg testa.
- onTestFailure- metoda onTestFailure poziva se na neuspjeh bilo kojeg testa.
- onTestSkipped- metoda onTestSkipped poziva se na preskakanje bilo kojeg testa.
- onTestFailedButWithinSuccessPercentage- metoda se poziva svaki put kada Test ne uspije, ali je unutar postotka uspjeha.
- onFinish- metoda onFinish poziva se nakon izvršavanja svih testova.
Testni scenarij:
U ovom ćemo testnom scenariju automatizirati postupak prijave i implementirati 'ItestListener'.
- Pokrenite Firefox i otvorite web mjesto "http://demo.guru99.com/V4/"
- Prijavite se u aplikaciju.
Koraci za stvaranje slušatelja TestNG
Za gornji scenarij testa implementirat ćemo Slušač.
Korak 1) Stvorite klasu "ListenerTest" koja implementira "ITestListener". Pomaknite miš preko teksta crvene crte i Eclipse će vam predložiti 2 brza popravka kao što je prikazano na donjem zaslonu:
Samo kliknite "Dodaj neprovedene metode". U kôd se dodaje više neprimjenjenih metoda (bez tijela). Provjerite u nastavku-
paket Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;javna klasa ListenerTest implementira ITestListener{@Preuzmijavna praznina na Finish (ITestContext arg0) {// TODO Automatski generirani kvar metode}@Preuzmijavna praznina onStart (ITestContext arg0) {// TODO Automatski generirani kvar metode}@Preuzmijavna praznina naTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Automatski generirani kvar metode}@Preuzmijavna praznina onTestFailure (ITestResult arg0) {// TODO Automatski generirani kvar metode}@Preuzmijavna praznina onTestSkipped (ITestResult arg0) {// TODO Automatski generirani kvar metode}@Preuzmijavna praznina onTestStart (ITestResult arg0) {// TODO Automatski generirani kvar metode}@Preuzmijavna praznina onTestSuccess (ITestResult arg0) {// TODO Automatski generirani kvar metode}}
Izmijenimo klasu 'ListenerTest'. Konkretno, izmijenit ćemo sljedeće metode -
onTestFailure, onTestSkipped, onTestStart, onTestSuccess itd.
Izmjena je jednostavna. Samo ispisujemo naziv testa.
Dnevnici se izrađuju u konzoli. Korisnik je lako razumjeti koji je test status položenog, neuspješnog i preskočenog.
Nakon izmjene, kôd izgleda kao-
paket Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;javna klasa ListenerTest implementira ITestListener{@Preuzmijavna praznina na Finish (rezultat ITestContext){}@Preuzmijavna praznina onStart (rezultat ITestContext){}@Preuzmijavna praznina naTestFailedButWithinSuccessPercentage (rezultat ITestResult){}// Kada test slučaj ne uspije, poziva se ova metoda.@Preuzmijavna praznina onTestFailure (rezultat ITestResult){System.out.println ("Naziv testcase-a nije uspio: + Result.getName ());}// Kada se preskoči test slučaj, poziva se ova metoda.@Preuzmijavna praznina onTestSkipped (rezultat ITestResult){System.out.println ("Ime preskočenog testcase-a je: + Result.getName ());}// Kada se test case pokrene, poziva se ova metoda.@Preuzmijavna praznina onTestStart (rezultat ITestResult){System.out.println (Result.getName () + "test case started");}// Kada test slučaj prođe, poziva se ova metoda.@Preuzmijavna praznina onTestSuccess (rezultat ITestResult){System.out.println ("Ime proslijeđenog testcase-a je: + Result.getName ());}}
Korak 2) Stvorite drugu klasu "TestCases" za automatizaciju procesa prijave. Selenium će izvršiti ovaj 'TestCases' za automatsku prijavu.
paket Listener_Demo;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;Uvoz org.testng.annotations.Test;javna klasa TestCases {Upravljački program za WebDriver = novi FirefoxDriver ();// Test za polaganje kao za provjeru slušatelja.@Testjavna praznina Prijava (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("lozinka")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). click ();}// Prisilno nije uspio na ovom testu radi provjere slušatelja.@Testjavna praznina TestToFail (){System.out.println ("Ova metoda za neuspješno testiranje");Assert.assertTrue (false);}}
Korak 3) Zatim implementirajte ovaj slušatelj u našu redovnu projektnu klasu, tj. "TestCases". Postoje dva različita načina povezivanja s klasom i sučeljem.
Prvi način je korištenje bilješke slušatelja (@Listeners) kako je prikazano u nastavku:
@Listeners (Listener_Demo.ListenerTest.class)
To koristimo u klasi "TestCases" kako je prikazano u nastavku.
Pa konačno, klasa "TestCases" izgleda nakon upotrebe bilješke slušatelja:
paket Listener_Demo;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;import org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)javna klasa TestCases {Upravljački program za WebDriver = novi FirefoxDriver ();// Test za polaganje kao za provjeru slušatelja.@Testjavna praznina Prijava (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("lozinka")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Prisilno nije uspio na ovom testu kao potvrdni slušatelj.@Testjavna praznina TestToFail (){System.out.println ("Ova metoda za neuspješno testiranje");Assert.assertTrue (false);}}
Struktura projekta izgleda ovako:
Korak 4): Izvršite klasu "TestCases". Metode u klasi "ListenerTest" pozivaju se automatski prema ponašanju metoda označenih kao @Test.
Korak 5): Provjerite izlaz koji se evidentira na konzoli.
Izlaz iz 'TestCases' izgledat će ovako:
[TestNG] Trčanje:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlZapočet je test prijaveIme položenog testcase-a je: PrijavaTestToFail testni slučaj pokrenutOva metoda za testiranje nije uspjelaNaziv testcasea nije uspio: TestToFailPROŠLO: PrijavaFAILED: TestToFailjava.lang.AssertionError: očekivano [točno], ali pronađeno [netačno]
Korištenje slušatelja za više klasa.
Ako projekt ima više klasa, dodavanje slušatelja svakom od njih može biti glomazno i sklono pogreškama.
U takvim slučajevima možemo stvoriti testng.xml i dodati oznaku slušatelja u XML.
Ovaj se slušač implementira u čitav testni paket, bez obzira na broj predavanja koje imate. Kada pokrenete ovu XML datoteku, slušatelji će raditi na svim spomenutim klasama. Također možete prijaviti bilo koji broj klase slušatelja.
Sažetak:
Slušatelji su dužni generirati zapisnike ili prilagoditi TestNG izvješća u programu Selenium Webdriver.
- Postoje mnoge vrste slušatelja i mogu se koristiti prema zahtjevima.
- Slušatelji su sučelja koja se koriste u skripti web-pokretačkog programa selena
- Pokazao upotrebu slušatelja u selenu
- Primijenili su slušatelje za više klasa