TestNG-lyssnare i selen: ITestListener & ITestResult Exempel

Innehållsförteckning:

Anonim

Det finns två huvudlyssnare.

  1. WebDriver lyssnare
  2. TestNG-lyssnare

I den här handledningen kommer vi att diskutera om Testng-lyssnare. Här är vad du kommer att lära dig-

  • Vad är lyssnare i TestNG?
  • Typer av lyssnare i TestNG
  • Testscenario:
  • Steg för att skapa en TestNG-lyssnare
  • Användning av Listener för flera klasser.

Vad är lyssnare i TestNG?

Lyssnare definieras som gränssnitt som ändrar testNG: s standardbeteende. Som namnet antyder lyssnar "lyssnar" till den händelse som definieras i selen-skriptet och beter sig därefter. Det används i selen genom att implementera lyssnargränssnittet. Det gör det möjligt att anpassa TestNG-rapporter eller loggar. Det finns många typer av TestNG-lyssnare tillgängliga.

Typer av lyssnare i TestNG

Det finns många typer av lyssnare som låter dig ändra TestNG: s beteende.

Nedan följer några TestNG-lyssnare:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. IConfigurable,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IRrapporter,
  11. ISuiteListener,
  12. ITestListener.

Ovan gränssnitt kallas TestNG lyssnare. Dessa gränssnitt används i selen för att generera loggar eller anpassa TestNG-rapporterna.

I den här handledningen implementerar vi ITestListener.

ITestListener har följande metoder

  • OnStart- OnStart-metoden anropas när något test startar.
  • onTestSuccess- onTestSuccess-metoden kallas för framgång för alla test.
  • onTestFailure- onTestFailure-metoden kallas vid misslyckande av något test.
  • onTestSkipped- onTestSkipped- metoden kallas vid hoppas över alla test.
  • onTestFailedButWithinSuccessPercentage- metoden kallas varje gång Test misslyckas men ligger inom framgångsprocenten.
  • onFinish- onFinish-metoden anropas efter att alla tester har utförts.

Testscenario:

I detta testscenario automatiserar vi inloggningsprocessen och implementerar 'ItestListener'.

  1. Starta Firefox och öppna webbplatsen "http://demo.guru99.com/V4/"
  1. Logga in på applikationen.

Steg för att skapa en TestNG-lyssnare

För ovanstående testscenario implementerar vi Listener.

Steg 1) Skapa klass "ListenerTest" som implementerar 'ITestListener'. Flytta musen över textlinjen, och Eclipse föreslår dig två snabbkorrigeringar som visas på skärmen nedan:

Klicka bara på "Lägg till icke implementerade metoder". Flera oimplementerade metoder (utan kropp) läggs till koden. Kontrollera nedan-

paketet Listener_Demo;importera org.testng.ITestContext;importera org.testng.ITestListener;importera org.testng.ITestResult;public class ListenerTest implementerar ITestListener{@Åsidosättapublic void onFinish (ITestContext arg0) {// TODO Auto-genererad metodstub}@Åsidosättaoffentligt ogiltigt onStart (ITestContext arg0) {// TODO Auto-genererad metodstub}@Åsidosättapublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Auto-genererad metodstub}@Åsidosättaoffentligt ogiltigt onTestFailure (ITestResult arg0) {// TODO Auto-genererad metodstub}@Åsidosättaoffentligt ogiltigt onTestSkipped (ITestResult arg0) {// TODO Auto-genererad metodstub}@Åsidosättaoffentligt ogiltigt onTestStart (ITestResult arg0) {// TODO Auto-genererad metodstub}@Åsidosättaoffentligt ogiltigt onTestSuccess (ITestResult arg0) {// TODO Auto-genererad metodstub}}

Låt oss ändra klassen 'ListenerTest'. I synnerhet kommer vi att ändra följande metoder-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

Ändringen är enkel. Vi skriver bara ut namnet på testet.

Loggar skapas i konsolen. Det är lätt för användaren att förstå vilket test som är godkänt, misslyckat och hoppstatus.

Efter modifiering ser koden ut som-

paketet Listener_Demo;importera org.testng.ITestContext;importera org.testng.ITestListener;importera org.testng.ITestResult;public class ListenerTest implementerar ITestListener{@Åsidosättapublic void onFinish (ITestContext Result){}@Åsidosättaoffentligt ogiltigt onStart (ITestContext-resultat){}@Åsidosättapublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// När testfallet misslyckas kallas den här metoden.@Åsidosättaoffentligt ogiltigt onTestFailure (ITestResult-resultat){System.out.println ("Testcase-namnet misslyckades är: + Result.getName ());}// När testfall hoppas över kallas den här metoden.@Åsidosättaoffentligt ogiltigt onTestSkipped (ITestResult-resultat){System.out.println ("Namnet på testcase som hoppas över är: + Result.getName ());}// När testfallet börjar, kallas den här metoden.@Åsidosättaoffentligt ogiltigt onTestStart (ITestResult-resultat){System.out.println (Result.getName () + "testfall startat");}// När testfallet är godkänt kallas den här metoden.@Åsidosättapublic void onTestSuccess (ITestResult Result){System.out.println ("Namnet på testkassan som skickats är: + Result.getName ());}}

Steg 2) Skapa en annan klass "TestCases" för inloggningsprocessen automatisering. Selen kommer att utföra dessa 'TestCases' för att logga in automatiskt.

paketet Listener_Demo;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.testng.Assert;importera org.testng.annotations.Listeners;Importera org.testng.annotations.Test;offentliga klass testcases {WebDriver-drivrutin = ny FirefoxDriver ();// Test för att klara för att verifiera lyssnare.@Testapublic void 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")). klicka ();}// Misslyckades med kraft detta test för att verifiera lyssnaren.@Testaoffentligt ogiltigt TestToFail (){System.out.println ("Denna metod för att testa misslyckas");Assert.assertTrue (false);}}

Steg 3) Därefter implementerar du den här lyssnaren i vår vanliga projektklass, dvs. "TestCases". Det finns två olika sätt att ansluta till klassen och gränssnittet.

Det första sättet är att använda lyssnaranteckningen (@Listeners) enligt nedan:

@Listeners (Listener_Demo.ListenerTest.class) 

Vi använder detta i klassen "TestCases" som visas nedan.

Så äntligen ser klassen "TestCases" ut efter att ha använt Listener-anteckningen:

paketet Listener_Demo;importera org.openqa.selenium.By;importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.firefox.FirefoxDriver;importera org.testng.Assert;importera org.testng.annotations.Listeners;importera org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)offentliga klass testcases {WebDriver-drivrutin = ny FirefoxDriver ();// Test för att klara för att verifiera lyssnare.@Testapublic void 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 ("")). klicka ();}// Misslyckades kraftigt detta test som verifiera lyssnare.@Testaoffentligt ogiltigt TestToFail (){System.out.println ("Denna metod för att testa misslyckas");Assert.assertTrue (false);}}

Projektstrukturen ser ut som:

Steg 4): Kör klassen "TestCases". Metoder i klass "ListenerTest" anropas automatiskt enligt beteendet hos metoder som antecknats som @Test.

Steg 5): Kontrollera utdata som loggar visas på konsolen.

Utdata från 'TestCases' kommer att se ut så här:

[TestNG] Running:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-tolluite.xmlInloggningstestfall startatNamnet på den godkända testkassan är: LoginTestToFail-testfallet startadeDenna metod för att testa misslyckadesTestcase-namnet misslyckades är: TestToFailGÅNG: InloggningFAILED: TestToFailjava.lang.AssertionError: förväntat [true] men hittat [false] 

Användning av Listener för flera klasser.

Om projektet har flera klasser kan det vara svårt att lägga lyssnare till var och en av dem.

I sådana fall kan vi skapa en testng.xml och lägga till lyssnartagg i XML.

Den här lyssnaren implementeras i hela testpaketet oavsett antalet klasser du har. När du kör den här XML-filen kommer lyssnarna att arbeta med alla nämnda klasser. Du kan också deklarera valfritt antal lyssnarklasser.

Sammanfattning:

Lyssnare måste skapa loggar eller anpassa TestNG-rapporter i Selenium Webdriver.

  • Det finns många typer av lyssnare och kan användas enligt kraven.
  • Lyssnare är gränssnitt som används i selen web-drivrutinsskript
  • Demonstrerade användningen av Listener i selen
  • Implementerade lyssnarna för flera klasser