Det er to hovedlyttere.
- WebDriver-lyttere
- TestNG-lyttere
I denne opplæringen vil vi diskutere om Testng-lyttere. Dette er hva du vil lære -
- Hva er lyttere i TestNG?
- Typer av lyttere i TestNG
- Test Scenario:
- Fremgangsmåte for å opprette en TestNG-lytter
- Bruk av Listener for flere klasser.
Hva er lyttere i TestNG?
Lytter er definert som grensesnitt som endrer standard TestNGs atferd. Som navnet antyder lytterne "lytter" til hendelsen som er definert i selenskriptet og oppfører seg deretter. Den brukes i selen ved å implementere Listeners Interface. Det gjør det mulig å tilpasse TestNG-rapporter eller logger. Det er mange typer TestNG-lyttere tilgjengelig.
Typer av lyttere i TestNG
Det er mange typer lyttere som lar deg endre TestNGs oppførsel.
Nedenfor er noen få TestNG-lyttere:
- IBemerkningstransformator,
- IAnnotationTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Over Interface kalles TestNG-lyttere. Disse grensesnittene brukes i selen for å generere logger eller tilpasse TestNG-rapportene.
I denne opplæringen vil vi implementere ITestListener.
ITestListener har følgende metoder
- OnStart- OnStart-metoden kalles når en test starter.
- onTestSuccess- onTestSuccess-metoden kalles suksessen til enhver test.
- onTestFailure- onTestFailure-metoden kalles på feil i en test.
- onTestSkipped- onTestSkipped- metoden kalles på hoppet over en hvilken som helst test.
- onTestFailedButWithinSuccessPercentage- metoden kalles hver gang Test mislykkes, men ligger innenfor suksessprosent.
- onFinish- onFinish-metoden kalles etter at alle tester er utført.
Test Scenario:
I dette testscenarioet vil vi automatisere påloggingsprosessen og implementere 'ItestListener'.
- Start Firefox og åpne nettstedet "http://demo.guru99.com/V4/"
- Logg inn på applikasjonen.
Fremgangsmåte for å opprette en TestNG-lytter
For testscenariet ovenfor vil vi implementere Listener.
Trinn 1) Opprett klasse "ListenerTest" som implementerer 'ITestListener'. Beveg musen over tekstlinjen, og Eclipse vil foreslå deg to hurtigreparasjoner som vist på skjermen nedenfor:
Bare klikk på "Legg til uimplementerte metoder". Flere uimplementerte metoder (uten kropp) legges til koden. Sjekk nedenfor-
pakke Listener_Demo;importer org.testng.ITestContext;importer org.testng.ITestListener;importer org.testng.ITestResult;public class ListenerTest implementerer ITestListener{@Overstyringoffentlig tomrom onFinish (ITestContext arg0) {// TODO Auto-generert metodestub}@Overstyringoffentlig tomrom onStart (ITestContext arg0) {// TODO Auto-generert metodestub}@Overstyringoffentlig ugyldighet onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Auto-generert metodestub}@Overstyringoffentlig ugyldighet onTestFailure (ITestResult arg0) {// TODO Auto-generert metodestub}@Overstyringoffentlig ugyldig onTestSkipped (ITestResult arg0) {// TODO Auto-generert metodestub}@Overstyringoffentlig ugyldighet onTestStart (ITestResult arg0) {// TODO Auto-generert metodestub}@Overstyringoffentlig ugyldighet onTestSuccess (ITestResult arg0) {// TODO Auto-generert metodestub}}
La oss endre klassen 'ListenerTest'. Spesielt vil vi endre følgende metoder-
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
Endringen er enkel. Vi skriver bare ut navnet på testen.
Logger opprettes i konsollen. Det er enkelt for brukeren å forstå hvilken test som er bestått, ikke bestått og hopp over status.
Etter endring ser koden ut som-
pakke Listener_Demo;importer org.testng.ITestContext;importer org.testng.ITestListener;importer org.testng.ITestResult;public class ListenerTest implementerer ITestListener{@Overstyringoffentlig tomrom onFinish (ITestContext Resultat){}@Overstyringoffentlig ugyldig onStart (ITestContext-resultat){}@Overstyringpublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Når testtilfelle mislykkes, kalles denne metoden.@Overstyringoffentlig ugyldighet onTestFailure (ITestResult Resultat){System.out.println ("Navnet på testcase mislyktes er: + Result.getName ());}// Når test case blir hoppet over, kalles denne metoden.@Overstyringoffentlig ugyldighet onTestSkipped (ITestResult-resultat){System.out.println ("Navnet på testkassen som hoppes over er: + Result.getName ());}// Når Test case kommer i gang, kalles denne metoden.@Overstyringoffentlig ugyldighet onTestStart (ITestResult-resultat){System.out.println (Result.getName () + "test case started");}// Når testtilfelle blir bestått, kalles denne metoden.@Overstyringoffentlig ugyldighet onTestSuccess (ITestResult Resultat){System.out.println ("Navnet på testcase som er bestått er: + Result.getName ());}}
Trinn 2) Opprett en annen klasse "TestCases" for automatisering av påloggingsprosessen. Selen vil utføre denne 'TestCases' for å logge inn automatisk.
pakke Listener_Demo;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.testng.Assert;importer org.testng.annotations.Listeners;Importer org.testng.annotations.Test;offentlige klasse TestCases {WebDriver-driver = ny FirefoxDriver ();// Test for å bestå for å bekrefte lyttere.@Testoffentlig ugyldig pålogging (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("password")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). klikk ();}// Mislyktes kraftig denne testen for å bekrefte lytteren.@Testoffentlig ugyldig TestToFail (){System.out.println ("Denne metoden for å teste mislykkes");Assert.assertTrue (false);}}
Trinn 3) Deretter implementerer du denne lytteren i vår vanlige prosjektklasse, dvs. "TestCases". Det er to forskjellige måter å koble til klassen og grensesnittet på.
Den første måten er å bruke Listers-merknader (@Listeners) som vist nedenfor:
@Listeners (Listener_Demo.ListenerTest.class)
Vi bruker dette i klassen "TestCases" som vist nedenfor.
Så endelig ser klassen "TestCases" ut etter å ha brukt Listener-merknader:
pakke Listener_Demo;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.firefox.FirefoxDriver;importer org.testng.Assert;importer org.testng.annotations.Listeners;importer org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)offentlige klasse TestCases {WebDriver-driver = ny FirefoxDriver ();// Test for å bestå for å bekrefte lyttere.@Testoffentlig ugyldig pålogging (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("password")). sendKeys ("amUpenu");driver.findElement (By.id ("")). klikk ();}// Mislyktes kraftig denne testen som bekreft lytter.@Testoffentlig ugyldig TestToFail (){System.out.println ("Denne metoden for å teste mislykkes");Assert.assertTrue (false);}}
Prosjektstrukturen ser ut som:
Trinn 4): Utfør klassen "TestCases". Metoder i klassen "ListenerTest" kalles automatisk i henhold til oppførselen til metoder som er merket som @Test.
Trinn 5): Bekreft utdataene som loggene viser på konsollen.
Produksjonen av 'TestCases' vil se slik ut:
[TestNG] Kjører:C: \ Brukere \ gauravn \ AppData \ Local \ Temp \ testng-formørkelse - 1058076918 \ testng-toll-suite.xmlPåloggingssaken startetNavnet på bestått testkoffert er: Logg innTestToFail-testsaken startetDenne metoden for å teste mislykkesNavnet på testkassen mislyktes: TestToFailPASSERT: PåloggingMISLYKT: TestToFailjava.lang.AssertionError: forventet [true] men funnet [false]
Bruk av Listener for flere klasser.
Hvis prosjektet har flere klasser, kan det være vanskelig å legge til lyttere til hver enkelt av dem.
I slike tilfeller kan vi opprette en testng.xml og legge til lyttekode i XML.
Denne lytteren er implementert i hele testpakken uavhengig av antall timer du har. Når du kjører denne XML-filen, vil lytterne jobbe med alle klassene som er nevnt. Du kan også erklære et hvilket som helst antall lytterklasser.
Sammendrag:
Lyttere er pålagt å generere logger eller tilpasse TestNG-rapporter i Selenium Webdriver.
- Det er mange typer lyttere og kan brukes etter behov.
- Lyttere er grensesnitt som brukes i selen webdriverskript
- Demonstrerte bruken av Listener i selen
- Implementerte lytterne for flere klasser