TestNG Ascoltatori dentro Selenium
Ci sono due ascoltatori principali.
- Ascoltatori WebDriver
- TestNG Gli ascoltatori
In questo tutorial, discuteremo su Test Ascoltatori.
In cosa si trovano gli ascoltatori TestNG?
Il listener รจ definito come un'interfaccia che modifica l'impostazione predefinita TestNG's behavior. Come suggerisce il nome, i Listener "ascoltano" l'evento definito nello script selenium e si comportano di conseguenza. Viene utilizzato in selenium implementando l'interfaccia Listeners. Consente la personalizzazione TestNG rapporti o registri. Ne esistono molti tipi TestNG ascoltatori disponibili.
Tipi di ascoltatori in TestNG
Esistono molti tipi di ascoltatori che ti consentono di modificare il file TestNGil comportamento di.
Di seguito sono riportati i pochi TestNG ascoltatori:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- IConfigurabile,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener .
Sopra vengono chiamate le interfacce TestNG Ascoltatori. Queste interfacce vengono utilizzate in Selenium per generare log o personalizzare il TestNG rapporti.
In questo tutorial implementeremo ITestListener.
ITestListener ha i seguenti metodi
- OnStart- Il metodo OnStart viene chiamato all'avvio di un test.
- onTestSuccess- Il metodo onTestSuccess viene chiamato in caso di successo di qualsiasi test.
- onTestFailure- Il metodo onTestFailure viene chiamato in caso di fallimento di qualsiasi test.
- onTestSkipped- Il metodo onTestSkipped viene chiamato quando viene saltato qualsiasi test.
- onTestFailedButWithinSuccessPercentage- viene chiamato ogni volta che il test fallisce ma rientra nella percentuale di successo.
- onFinish- Il metodo onFinish viene chiamato dopo l'esecuzione di tutti i test.
Scenario di prova
In questo scenario di test, automatizzeremo il processo di accesso e implementeremo "ItestListener".
- Avviare il Firefox e aprire il sito https://demo.guru99.com/V4/
- Accedi all'applicazione.
Passaggi per creare un file TestNG Ascoltatore
Per lo scenario di test precedente, implementeremo Listener.
Passo 1) Crea la classe "ListenerTest" che implementa "ITestListener". Sposta il mouse sul testo con la riga rossa e Eclipse ti suggerirร 2 soluzioni rapide come mostrato nella schermata seguente:
Basta fare clic su โAggiungi metodi non implementatiโ. Al codice vengono aggiunti piรน metodi non implementati (senza corpo). Controlla qui sotto-
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
}
}
Modifichiamo la classe 'ListenerTest'. In particolare, modificheremo i seguenti metodi:
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
La modifica รจ semplice. Stampiamo semplicemente il nome del Test.
I log vengono creati nella console. ร facile per l'utente capire quale test รจ uno stato superato, fallito e saltato.
Dopo la modifica, il codice appare cosรฌ-
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());
}
}
Passo 2) Crea un'altra classe "TestCases" per l'automazione del processo di accesso. Selenium eseguirร questo 'TestCases' per accedere automaticamente.
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);
}
}
Passo 3) Successivamente, implementa questo ascoltatore nella nostra normale classe di progetto, ovvero "TestCases". Esistono due modi diversi per connettersi alla classe e all'interfaccia.
Il primo modo รจ utilizzare l'annotazione Listeners (@Listeners) come mostrato di seguito:
@Listeners(Listener_Demo.ListenerTest.class)
Lo usiamo nella classe "TestCases" come mostrato di seguito.
Quindi alla fine la classe "TestCases" appare dopo aver utilizzato l'annotazione 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);
}
}
La struttura del progetto รจ simile a:
Passo 4): Esegui la classe "TestCases". I metodi nella classe โListenerTestโ vengono chiamati automaticamente in base al comportamento dei metodi annotati come @Test.
Passo 5): Verificare l'output visualizzato nella console.
L'output dei "TestCases" sarร simile al seguente:
[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]
Utilizzo di Listener per piรน classi.
Se il progetto ha piรน classi, aggiungere Listener a ciascuna di esse potrebbe essere complicato e soggetto a errori.
In questi casi, possiamo creare un testng.xml e aggiungere il tag listener in XML.
Questo ascoltatore รจ implementato in tutta la suite di test indipendentemente dal numero di classi che hai. Quando esegui questo file XML, gli ascoltatori lavoreranno su tutte le classi menzionate. Puoi anche dichiarare un numero qualsiasi di classi listener.
Sintesi
Gli ascoltatori sono tenuti a generare log o personalizzare TestNG rapporti in Selenium Webdriver.
- Esistono molti tipi di ascoltatori e possono essere utilizzati in base ai requisiti.
- Gli ascoltatori sono interfacce utilizzate nello script del driver web selenium
- Dimostrato l'uso di Listener in Selenium
- Implementati gli ascoltatori per piรน classi







