Det finns två huvudlyssnare.
- WebDriver lyssnare
- 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:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IRrapporter,
- ISuiteListener,
- 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'.
- Starta Firefox och öppna webbplatsen "http://demo.guru99.com/V4/"
- 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