TestNG-lyttere i selen: ITestListener & Eksempel på ITestResult

Indholdsfortegnelse:

Anonim

Der er to hovedlyttere.

  1. WebDriver lyttere
  2. 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:

  1. IAnnotationTransformer,
  2. IBemærkTransformer2,
  3. IConfigurable,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. 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'.

  1. Start Firefox, og åbn webstedet "http://demo.guru99.com/V4/"
  1. 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