Der er to hovedlyttere.
- WebDriver lyttere
- TestNG lyttere
I denne vejledning vil vi diskutere om Testng-lyttere. Her er hvad du vil lære -
- Hvad er lyttere i TestNG?
- Typer af lyttere i TestNG
- Testscenarie:
- Trin til at oprette en TestNG-lytter
- Brug af lytter til flere klasser.
Hvad er lyttere i TestNG?
Lytter er defineret som interface, der ændrer standard TestNG's adfærd. Som navnet antyder, lytter lyttere til begivenheden defineret i selen-scriptet og opfører sig i overensstemmelse hermed. Det bruges i selen ved at implementere listenergrænsefladen. Det giver mulighed for at tilpasse TestNG-rapporter eller logfiler. Der er mange typer TestNG-lyttere tilgængelige.
Typer af lyttere i TestNG
Der er mange typer lyttere, som giver dig mulighed for at ændre TestNG's adfærd.
Nedenfor er de få TestNG-lyttere:
- IAnnotationTransformer,
- IBemærkTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Ovenstående interface kaldes TestNG-lyttere. Disse grænseflader bruges i selen til at generere logfiler eller tilpasse TestNG-rapporterne.
I denne vejledning implementerer vi ITestListener.
ITestListener har følgende metoder
- OnStart - OnStart-metoden kaldes, når en test starter.
- onTestSuccess- onTestSuccess-metoden kaldes succesen for enhver test.
- onTestFailure- onTestFailure-metode kaldes på manglende test.
- onTestSkipped- onTestSkipped- metode kaldes ved sprunget over enhver test.
- onTestFailedButWithinSuccessPercentage- metode kaldes hver gang Test mislykkes, men ligger inden for succesprocenten.
- onFinish- onFinish-metoden kaldes, når alle tests er udført.
Testscenarie:
I dette testscenarie automatiserer vi loginprocessen og implementerer 'ItestListener'.
- Start Firefox, og åbn webstedet "http://demo.guru99.com/V4/"
- Log ind på applikationen.
Trin til at oprette en TestNG-lytter
For ovenstående testscenarie implementerer vi Listener.
Trin 1) Opret klasse "ListenerTest", der implementerer 'ITestListener'. Flyt musen hen over redline tekst, og Eclipse vil foreslå dig 2 hurtige rettelser som vist på nedenstående skærm:
Klik bare på "Tilføj ikke-implementerede metoder". Flere uimplementerede metoder (uden krop) føjes til koden. Tjek nedenfor-
pakke Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;offentlig klasse ListenerTest implementerer ITestListener{@Overrideoffentlig tomrum onFinish (ITestContext arg0) {// TODO Auto-genereret metodestub}@Overrideoffentligt ugyldigt onStart (ITestContext arg0) {// TODO Auto-genereret metodestub}@Overrideoffentlig ugyldighed onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Auto-genereret metodestub}@Overrideoffentlig ugyldighed onTestFailure (ITestResult arg0) {// TODO Auto-genereret metodestub}@Overrideoffentlig ugyldighed onTestSkipped (ITestResult arg0) {// TODO Auto-genereret metodestub}@Overrideoffentligt ugyldigt onTestStart (ITestResult arg0) {// TODO Auto-genereret metodestub}@Overrideoffentlig ugyldighed onTestSuccess (ITestResult arg0) {// TODO Auto-genereret metodestub}}
Lad os ændre klassen 'ListenerTest'. Især vil vi ændre følgende metoder-
onTestFailure, onTestSkipped, onTestStart, onTestSuccess osv.
Ændringen er enkel. Vi udskriver bare navnet på testen.
Logfiler oprettes i konsollen. Det er let for brugeren at forstå, hvilken test der er en bestået, mislykket og springet status over.
Efter ændring ser koden ud som-
pakke Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;offentlig klasse ListenerTest implementerer ITestListener{@Overrideoffentlig ugyldighed onFinish (ITestContext-resultat){}@Overrideoffentlig ugyldighed onStart (ITestContext-resultat){}@Overridepublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Når testsagen mislykkes, kaldes denne metode.@Overrideoffentlig ugyldighed onTestFailure (ITestResult-resultat){System.out.println ("Navnet på testcase mislykkedes er: + Result.getName ());}// Når test case springes over, kaldes denne metode.@Overrideoffentlig ugyldighed onTestSkipped (ITestResult-resultat){System.out.println ("Navnet på testkassen, der springes over, er: + Resultat.getnavn ());}// Når test case kommer i gang, kaldes denne metode.@Overrideoffentlig ugyldighed onTestStart (ITestResult-resultat){System.out.println (Result.getName () + "test case started");}// Når testsagen bliver bestået, kaldes denne metode.@Overrideoffentlig ugyldighed onTestSuccess (ITestResult-resultat){System.out.println ("Navnet på den testcase, der er bestået, er: + Result.getName ());}}
Trin 2) Opret en anden klasse "TestCases" til automatisering af loginprocessen. Selen vil udføre denne 'TestCases' for automatisk at logge ind.
pakke Listener_Demo;importer 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ér org.testng.annotations.Test;offentlige klasse testcases {WebDriver-driver = ny FirefoxDriver ();// Test for at bestå for at bekræfte lyttere.@Prøveoffentlig ugyldig login (){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")). klik ();}// Mislykkedes kraftigt denne test for at bekræfte lytteren.@Prøveoffentlig ugyldighed TestToFail (){System.out.println ("Denne metode til test mislykkes");Assert.assertTrue (false);}}
Trin 3) Dernæst implementerer denne lytter i vores almindelige projektklasse, dvs. "TestCases". Der er to forskellige måder at oprette forbindelse til klassen og grænsefladen på.
Den første måde er at bruge lytternotering (@Listeners) som vist nedenfor:
@Listeners (Listener_Demo.ListenerTest.class)
Vi bruger dette i klassen "Testcases" som vist nedenfor.
Så endelig ser klassen "TestCases" ud efter brug af Listener-kommentar:
pakke Listener_Demo;importer 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)offentlige klasse testcases {WebDriver-driver = ny FirefoxDriver ();// Test for at bestå for at bekræfte lyttere.@Prøveoffentlig ugyldig login (){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 ("")). klik ();}// Mislykkedes kraftigt denne test som bekræftende lytter.@Prøveoffentlig ugyldighed TestToFail (){System.out.println ("Denne metode til test mislykkes");Assert.assertTrue (false);}}
Projektstrukturen ser ud som:
Trin 4): Udfør klassen "TestCases". Metoder i klasse "ListenerTest" kaldes automatisk i henhold til opførslen af metoder, der er kommenteret som @Test.
Trin 5): Bekræft det output, der logger, vises på konsollen.
Output af 'TestCases' vil se sådan ud:
[TestNG] Kører:C: \ Brugere \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-tolluite.xmlLogin Test Case startetNavnet på den beståede testcase er: LoginTestToFail test sag startetDenne metode til test mislykkesNavnet på testcase mislykkedes er: TestToFailPASSED: LoginFAILED: TestToFailjava.lang.AssertionError: forventet [true] men fundet [false]
Brug af lytter til flere klasser.
Hvis projektet har flere klasser, kan tilføjelse af lyttere til hver enkelt af dem være besværlig og fejlbehæftet.
I sådanne tilfælde kan vi oprette en testng.xml og tilføje lyttere-tag i XML.
Denne lytter implementeres i hele testpakken uanset antallet af klasser, du har. Når du kører denne XML-fil, vil lyttere arbejde på alle de nævnte klasser. Du kan også erklære et hvilket som helst antal lytterklasser.
Resumé:
Lyttere skal generere logfiler eller tilpasse TestNG-rapporter i Selenium Webdriver.
- Der er mange typer lyttere og kan bruges efter behov.
- Lyttere er grænseflader, der bruges i selen webdriver script
- Demonstrerede brugen af Listener i selen
- Implementerede lytterne til flere klasser