TestNG Ascultătorii în Selenium: Exemplu ITestListener și ITestResult


Sunt doi ascultători principali.

  1. WebDriver Ascultători
  2. TestNG ascultătorii

În acest tutorial, vom discuta despre Testng Ascultătorii.

În ce se află Ascultătorii TestNG?

Ascultătorul este definit ca interfață care modifică valoarea implicită TestNGcomportamentul lui. După cum sugerează și numele, Ascultătorii „ascultă” evenimentul definit în scriptul seleniu și se comportă în consecință. Este folosit în seleniu prin implementarea Listeners Interface. Permite personalizarea TestNG rapoarte sau jurnalele. Există multe tipuri de TestNG ascultători disponibili.

Ascultătorii în TestNG

Tipuri de ascultători în TestNG

Există multe tipuri de ascultători care vă permit să schimbați TestNGcomportamentul lui.

Mai jos sunt câteva TestNG ascultători:

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

Mai sus sunt numite Interfața TestNG Ascultătorii. Aceste interfețe sunt folosite în seleniu pentru a genera jurnale sau pentru a personaliza TestNG rapoarte.

În acest tutorial, vom implementa ITestListener.

ITestListener are următoarele metode

  • OnStart- Metoda OnStart este apelată când începe orice test.
  • onTestSuccess- Metoda onTestSuccess este apelată la succesul oricărui Test.
  • onTestFailure- Metoda onTestFailure este apelată la eșecul oricărui Test.
  • onTestSkipped- Metoda onTestSkipped este apelată la ignorarea oricărui test.
  • onTestFailedButWithinSuccessPercentage- metoda este apelată de fiecare dată când Testul eșuează, dar se află în procentul de succes.
  • onFinish- Metoda onFinish este apelată după ce toate Testele sunt executate.

Scenariu de testare

În acest scenariu de testare, vom automatiza procesul de conectare și vom implementa „ItestListener”.

  1. Lansarea Firefox și deschide site-ul https://demo.guru99.com/V4/
  2. Scenariu de testare

  3. Conectați-vă la aplicație.
  4. Scenariu de testare

Pași pentru a crea un TestNG ascultător

Pentru scenariul de testare de mai sus, vom implementa Listener.

Pas 1) Creați clasa „ListenerTest” care implementează „ITestListener”. Deplasați mouse-ul peste text cu linia roșie și Eclipse vă va sugera 2 remedieri rapide, așa cum se arată în ecranul de mai jos:

Pași pentru a crea a TestNG ascultător

Doar faceți clic pe „Adăugați metode neimplementate”. Mai multe metode neimplementate (fără corp) sunt adăugate la cod. Verifica mai jos-

package Listener_Demo;		

import org.testng.ITestContext ;		
import org.testng.ITestListener ;		
import org.testng.ITestResult ;		

public class ListenerTest implements ITestListener						
{		

    @Override		
    public void onFinish(ITestContext arg0) {					
        // TODO Auto-generated method stub				
        		
    }		

    @Override		
    public void onStart(ITestContext arg0) {					
        // TODO Auto-generated method stub				
        		
    }		

    @Override		
    public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {					
        // TODO Auto-generated method stub				
        		
    }		

    @Override		
    public void onTestFailure(ITestResult arg0) {					
        // TODO Auto-generated method stub				
        		
    }		

    @Override		
    public void onTestSkipped(ITestResult arg0) {					
        // TODO Auto-generated method stub				
        		
    }		

    @Override		
    public void onTestStart(ITestResult arg0) {					
        // TODO Auto-generated method stub				
        		
    }		

    @Override		
    public void onTestSuccess(ITestResult arg0) {					
        // TODO Auto-generated method stub				
        		
    }		
}		

Să modificăm clasa „ListenerTest”. În special, vom modifica următoarele metode-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

Modificarea este simplă. Tipărim doar numele Testului.

Jurnalele sunt create în consolă. Este ușor pentru utilizator să înțeleagă ce test este o stare de trecere, de eșuare și de ignorare.

După modificare, codul arată ca...

package Listener_Demo;		

import org.testng.ITestContext;		
import org.testng.ITestListener;		
import org.testng.ITestResult;		

public class ListenerTest implements ITestListener						
{		

    @Override		
    public void onFinish(ITestContext Result) 					
    {		
                		
    }		

    @Override		
    public void onStart(ITestContext Result)					
    {		
            		
    }		

    @Override		
    public void onTestFailedButWithinSuccessPercentage(ITestResult Result)					
    {		
    		
    }		

    // When Test case get failed, this method is called.		
    @Override		
    public void onTestFailure(ITestResult Result) 					
    {		
    System.out.println("The name of the testcase failed is :"+Result.getName());					
    }		

    // When Test case get Skipped, this method is called.		
    @Override		
    public void onTestSkipped(ITestResult Result)					
    {		
    System.out.println("The name of the testcase Skipped is :"+Result.getName());					
    }		

    // When Test case get Started, this method is called.		
    @Override		
    public void onTestStart(ITestResult Result)					
    {		
    System.out.println(Result.getName()+" test case started");					
    }		

    // When Test case get passed, this method is called.		
    @Override		
    public void onTestSuccess(ITestResult Result)					
    {		
    System.out.println("The name of the testcase passed is :"+Result.getName());					
    }		

}			

Pas 2) Creați o altă clasă „TestCase” pentru automatizarea procesului de conectare. Selenium va executa aceste „Cazuri de testare” pentru a se autentifica automat.

package Listener_Demo;		

import 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;		

public class TestCases {				
WebDriver driver= new FirefoxDriver();					

// Test to pass as to verify listeners .		
@Test		
public void Login()				
{		
    driver.get("https://demo.guru99.com/V4/");					
    driver.findElement(By.name("uid")).sendKeys("mngr34926");							
    driver.findElement(By.name("password")).sendKeys("amUpenu");							
    driver.findElement(By.name("btnLogin")).click();					
}		

// Forcefully failed this test as to verify listener.		
@Test		
public void TestToFail()				
{		
    System.out.println("This method to test fail");					
    Assert.assertTrue(false);			
}		
}

Pas 3) Apoi, implementați acest ascultător în clasa noastră obișnuită de proiect, adică „TestCases”. Există două moduri diferite de a vă conecta la clasă și la interfață.

Prima modalitate este să utilizați adnotarea Ascultătorilor (@Ascultători), după cum se arată mai jos:

@Listeners(Listener_Demo.ListenerTest.class)

Folosim acest lucru în clasa „Cazuri de testare”, așa cum se arată mai jos.

Deci, în sfârșit, clasa „TestCases” arată ca după utilizarea adnotării Listener:

package Listener_Demo;		

import 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)			

public class TestCases {				
WebDriver driver= new FirefoxDriver();					

//Test to pass as to verify listeners.		
@Test		
public void Login()				
{		
    driver.get("https://demo.guru99.com/V4/");					
    driver.findElement(By.name("uid")).sendKeys("mngr34926");							
    driver.findElement(By.name("password")).sendKeys("amUpenu");							
    driver.findElement(By.id("")).click();					
}		

//Forcefully failed this test as verify listener.		
@Test		
public void TestToFail()				
{		
    System.out.println("This method to test fail");					
    Assert.assertTrue(false);			
}		
}			

Structura proiectului arată astfel:

Pași pentru a crea a TestNG ascultător

Pasul 4): Executați clasa „TestCases”. Metodele din clasa „ListenerTest” sunt apelate automat în funcție de comportamentul metodelor adnotate ca @Test.

Pasul 5): Verificați ieșirea care se înregistrează pe consolă.

Ieșirea „Cazurilor de testare” va arăta astfel:

Pași pentru a crea a TestNG ascultător

[TestNG] Running:		
C:\Users\gauravn\AppData\Local\Temp\testng-eclipse--1058076918\testng-customsuite.xml		

Login Test Case started		
The name of the testcase passed is:Login		
TestToFail test case started		
This method to test fail		
The name of the testcase failed is:TestToFail		
PASSED: Login		
FAILED: TestToFail		
java.lang.AssertionError: expected [true] but found [false]

Utilizarea Listener pentru mai multe clase.

Dacă proiectul are mai multe clase, adăugarea de ascultători la fiecare dintre ele ar putea fi greoaie și predispusă la erori.

În astfel de cazuri, putem crea un testng.xml și putem adăuga eticheta de ascultători în XML.

Utilizarea ascultătorului pentru mai multe clase

Acest ascultător este implementat în întreaga suită de testare, indiferent de numărul de clase pe care le aveți. Când rulați acest fișier XML, ascultătorii vor lucra la toate clasele menționate. De asemenea, puteți declara orice număr de clasă de ascultător.

Rezumat

Ascultătorii trebuie să genereze jurnalele sau să personalizeze TestNG raportează în Selenium Webdriver.

  • Există multe tipuri de ascultători și pot fi utilizați conform cerințelor.
  • Ascultătorii sunt interfețe utilizate în scriptul driverului web selenium
  • A demonstrat utilizarea Listener în Selenium
  • Am implementat Listeners pentru mai multe clase

Buletin informativ zilnic Guru99

Începe-ți ziua cu cele mai recente și importante știri despre inteligența artificială, livrate chiar acum.