Există doi ascultători principali.
- Ascultători WebDriver
- Ascultători TestNG
În acest tutorial, vom discuta despre Testng Listeners. Iată ce veți învăța-
- Ce este ascultătorii în TestNG?
- Tipuri de ascultători în TestNG
- Scenariu de testare:
- Pași pentru a crea un ascultător TestNG
- Utilizarea Listener pentru mai multe clase.
Ce este ascultătorii în TestNG?
Ascultătorul este definit ca o interfață care modifică comportamentul implicit TestNG. După cum sugerează și numele Ascultătorii „ascultă” evenimentul definit în scriptul seleniu și se comportă în consecință. Este utilizat în seleniu prin implementarea interfeței ascultătorilor. Permite personalizarea rapoartelor sau jurnalelor TestNG. Există multe tipuri de ascultători TestNG disponibili.
Tipuri de ascultători în TestNG
Există multe tipuri de ascultători care vă permit să schimbați comportamentul TestNG.
Mai jos sunt câțiva ascultători TestNG:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- IConfigurabil,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Interfața de mai sus se numește ascultători TestNG. Aceste interfețe sunt utilizate în seleniu pentru a genera jurnale sau pentru a personaliza rapoartele TestNG.
În acest tutorial, vom implementa ITestListener.
ITestListener are următoarele metode
- OnStart- Metoda OnStart este apelată când începe orice test.
- Metoda onTestSuccess- onTestSuccess este apelată la succesul oricărui test.
- onTestFailure- onTestFailure metoda este apelată la eșecul oricărui test.
- onTestSkipped- metoda onTestSkipped este apelată la omiterea oricărui test.
- onTestFailedButWithinSuccessPercentage- metoda este numită de fiecare dată când testul eșuează, dar se află în procentul de succes.
- Metoda onFinish- onFinish este apelată după executarea tuturor testelor.
Scenariu de testare:
În acest scenariu de testare, vom automatiza procesul de autentificare și vom implementa „ItestListener”.
- Lansați Firefox și deschideți site-ul „http://demo.guru99.com/V4/”
- Conectați-vă la aplicație.
Pași pentru a crea un ascultător TestNG
Pentru scenariul de test de mai sus, vom implementa Listener.
Pasul 1) Creați clasa „ListenerTest” care implementează „ITestListener”. Mutați mouse-ul peste textul redline, iar Eclipse vă va sugera 2 remedieri rapide așa cum se arată în ecranul de mai jos:
Doar faceți clic pe „Adăugați metode neimplementate”. La cod sunt adăugate mai multe metode neimplementate (fără corp). Verificați mai jos-
pachet Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest implementează ITestListener{@Trece pestepublic void onFinish (ITestContext arg0) {// TODO Metoda generată automat}@Trece pestepublic void onStart (ITestContext arg0) {// TODO Metoda generată automat}@Trece pestepublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Metoda generată automat}@Trece pestepublic void onTestFailure (ITestResult arg0) {// TODO Metoda generată automat}@Trece pestepublic void onTestSkipped (ITestResult arg0) {// TODO Metoda generată automat}@Trece pestepublic void onTestStart (ITestResult arg0) {// TODO Metoda generată automat}@Trece pestepublic void onTestSuccess (ITestResult arg0) {// TODO Metoda generată automat}}
Să modificăm clasa „ListenerTest”. În special, vom modifica următoarele metode-
onTestFailure, onTestSkipped, onTestStart, onTestSuccess etc.
Modificarea este simplă. Tocmai tipărim numele testului.
Jurnalele sunt create în consolă. Este ușor pentru utilizator să înțeleagă care este testul de trecere, eșuare și saltare.
După modificare, codul arată ca-
pachet Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest implementează ITestListener{@Trece pestepublic void onFinish (ITestContext Result){}@Trece pestepublic void onStart (ITestContext Result){}@Trece pestepublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Când cazul de testare a eșuat, se apelează această metodă.@Trece pestepublic void onTestFailure (ITestResult Result){System.out.println ("Numele testului eșuat este: + Result.getName ());}// Când Test Test este omis, se apelează această metodă.@Trece pestepublic void onTestSkipped (ITestResult Result){System.out.println ("Numele testcasei omise este: + Result.getName ());}// Când Start Test case începe, se apelează această metodă.@Trece pestepublic void onTestStart (Rezultat ITestResult){System.out.println (Result.getName () + "test test a început");}// Când testul este trecut, această metodă este numită.@Trece pestepublic void onTestSuccess (Rezultat ITestResult){System.out.println ("Numele testei trecut este: + Result.getName ());}}
Pasul 2) Creați o altă clasă "TestCases" pentru automatizarea procesului de autentificare. Selenium va executa acest „TestCases” pentru a se autentifica automat.
pachet Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;Importați org.testng.annotations.Test;public class TestCases {Driver WebDriver = nou FirefoxDriver ();// Test pentru a trece pentru a verifica ascultătorii.@Testpublic void Autentificare (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("parolă")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). faceți clic pe ();}// A eșuat cu forță acest test pentru a verifica ascultătorul.@Testpublic void TestToFail (){System.out.println („Această metodă de testare eșuează”);Assert.assertTrue (fals);}}
Pasul 3) Apoi, implementați acest ascultător în clasa noastră obișnuită de proiect, adică „TestCases”. Există două moduri diferite de conectare la clasă și interfață.
Primul mod este să folosiți adnotarea ascultătorilor (@Listeners) așa cum se arată mai jos:
@Listeners (Listener_Demo.ListenerTest.class)
Folosim acest lucru în clasa „TestCases” așa cum se arată mai jos.
Deci, în sfârșit, clasa „TestCases” arată după ce ați folosit adnotarea Listener:
pachet Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;import org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)public class TestCases {Driver WebDriver = nou FirefoxDriver ();// Test pentru a trece pentru a verifica ascultătorii.@Testpublic void Autentificare (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("parolă")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// A eșuat cu forță acest test ca ascultător de verificare.@Testpublic void TestToFail (){System.out.println („Această metodă de testare eșuează”);Assert.assertTrue (fals);}}
Structura proiectului arată ca:
Pasul 4): Executați clasa „TestCases”. Metodele din clasa "ListenerTest" sunt apelate automat în funcție de comportamentul metodelor adnotate ca @Test.
Pasul 5): Verificați rezultatul afișat pe consolă.
Rezultatul „TestCases” va arăta astfel:
[TestNG] Rularea:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlTestul de autentificare a începutNumele testei trecute este: AutentificareTestul TestToFail a început cazulAceastă metodă de testare eșueazăNumele testei eșuate este: TestToFailTRECUT: AutentificareEȘUAT: TestToFailjava.lang.AssertionError: așteptat [adevărat] dar găsit [fals]
Utilizarea Listener pentru mai multe clase.
Dacă proiectul are mai multe clase, adăugarea de ascultători la fiecare dintre ele ar putea fi greoaie și predispusă la erori.
În astfel de cazuri, putem crea un testng.xml și putem adăuga etichetă ascultător în XML.
Acest ascultător este implementat în întreaga suită de testare, indiferent de numărul de clase pe care le aveți. Când rulați acest fișier XML, ascultătorii vor lucra la toate clasele menționate. De asemenea, puteți declara orice număr de ascultători.
Rezumat:
Ascultătorii sunt obligați să genereze jurnale sau să personalizeze rapoartele TestNG în Selenium Webdriver.
- Există multe tipuri de ascultători și pot fi folosiți conform cerințelor.
- Ascultătorii sunt interfețe utilizate în scriptul de seleniu al driverului web
- A demonstrat utilizarea ascultătorului în seleniu
- Implementarea ascultătorilor pentru mai multe clase