TestNG Auditeurs dans Selenium


Il y a deux auditeurs principaux.

  1. Écouteurs WebDriver
  2. TestNG Les auditeurs

Dans ce tutoriel, nous discuterons de Tester Les auditeurs.

Dans quoi se trouvent les auditeurs TestNG?

L'écouteur est défini comme une interface qui modifie la valeur par défaut TestNGComportement de . Comme son nom l'indique, les écouteurs « écoutent » l'événement défini dans le script Selenium et se comportent en conséquence. Il est utilisé dans Selenium en implémentant l'interface Listeners. Il permet de personnaliser TestNG rapports ou journaux. Il existe de nombreux types de TestNG auditeurs disponibles.

Auditeurs dans TestNG

Types d'auditeurs dans TestNG

Il existe de nombreux types d'écouteurs qui vous permettent de modifier le TestNGle comportement.

Voici les quelques TestNG les auditeurs:

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

L'interface ci-dessus est appelée TestNG Auditeurs. Ces interfaces sont utilisées dans Selenium pour générer des journaux ou personnaliser le TestNG rapports.

Dans ce tutoriel, nous allons implémenter ITestListener.

ITestListener a les méthodes suivantes

  • Au démarrage- La méthode OnStart est appelée au démarrage d’un test.
  • onTestSuccess- La méthode onTestSuccess est appelée en cas de réussite de n’importe quel test.
  • onTestFailure- La méthode onTestFailure est appelée en cas d’échec d’un test.
  • onTestSkipped- La méthode onTestSkipped est appelée en cas d'ignorance d'un test.
  • onTestFailedButWithinSuccessPercentage- La méthode est appelée chaque fois que le test échoue mais se situe dans les limites du pourcentage de réussite.
  • onFinish- La méthode onFinish est appelée une fois tous les tests exécutés.

Scénario de test

Dans ce scénario de test, nous allons automatiser le processus de connexion et implémenter « ItestListener ».

  1. Lancez l' Firefox et ouvrez le site https://demo.guru99.com/V4/
  2. Scénario de test

  3. Connectez-vous à l'application.
  4. Scénario de test

Étapes pour créer un TestNG Auditeur

Pour le scénario de test ci-dessus, nous implémenterons Listener.

Étape 1) Créez la classe « ListenerTest » qui implémente « ITestListener ». Déplacez la souris sur le texte de la ligne rouge et Eclipse vous proposera 2 solutions rapides, comme indiqué dans l'écran ci-dessous :

Étapes pour créer un TestNG Auditeur

Cliquez simplement sur « Ajouter des méthodes non implémentées ». Plusieurs méthodes non implémentées (sans corps) sont ajoutées au code. Vérifiez ci-dessous-

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				
        		
    }		
}		

Modifions la classe 'ListenerTest'. En particulier, nous modifierons les méthodes suivantes :

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

La modification est simple. Nous imprimons simplement le nom du test.

Les journaux sont créés dans la console. Il est facile pour l’utilisateur de comprendre quel test est un statut de réussite, d’échec et de saut.

Après modification, le code ressemble à-

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());					
    }		

}			

Étape 2) Créez une autre classe « TestCases » pour l'automatisation du processus de connexion. Selenium exécutera ces « TestCases » pour vous connecter automatiquement.

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);			
}		
}

Étape 3) Ensuite, implémentez cet écouteur dans notre classe de projet habituelle, c'est-à-dire « TestCases ». Il existe deux manières différentes de se connecter à la classe et à l'interface.

La première façon consiste à utiliser l'annotation Listeners (@Listeners) comme indiqué ci-dessous :

@Listeners(Listener_Demo.ListenerTest.class)

Nous l'utilisons dans la classe « TestCases » comme indiqué ci-dessous.

Donc finalement, la classe « TestCases » ressemble après avoir utilisé l'annotation 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 structure du projet ressemble à :

Étapes pour créer un TestNG Auditeur

Étape 4): Exécutez la classe « TestCases ». Les méthodes de la classe « ListenerTest » sont appelées automatiquement en fonction du comportement des méthodes annotées @Test.

Étape 5): Vérifiez la sortie que les journaux affichent sur la console.

La sortie des « TestCases » ressemblera à ceci :

Étapes pour créer un TestNG Auditeur

[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]

Utilisation de Listener pour plusieurs classes.

Si le projet comporte plusieurs classes, l'ajout d'écouteurs à chacune d'entre elles peut s'avérer fastidieux et sujet aux erreurs.

Dans de tels cas, nous pouvons créer un testng.xml et ajouter une balise d'écoute en XML.

Utilisation de l'écouteur pour plusieurs classes

Cet écouteur est implémenté dans toute la suite de tests, quel que soit le nombre de classes dont vous disposez. Lorsque vous exécutez ce fichier XML, les écouteurs travailleront sur toutes les classes mentionnées. Vous pouvez également déclarer n'importe quel nombre de classes d'écoute.

Résumé

Les auditeurs doivent générer des journaux ou personnaliser TestNG rapports dans Selenium Pilote Web.

  • Il existe de nombreux types d'écouteurs et peuvent être utilisés selon les besoins.
  • Les écouteurs sont des interfaces utilisées dans le script du pilote Web Selenium
  • Démonstration de l'utilisation de Listener dans Selenium
  • Implémentation des auditeurs pour plusieurs classes

Résumez cet article avec :