Il y a deux auditeurs principaux.
- Écouteurs WebDriver
- Auditeurs TestNG
Dans ce didacticiel, nous aborderons les écouteurs Testng. Voici ce que vous apprendrez
- Qu'est-ce que Listeners dans TestNG?
- Types d'auditeurs dans TestNG
- Scénario de test:
- Étapes pour créer un écouteur TestNG
- Utilisation de Listener pour plusieurs classes.
Qu'est-ce que Listeners dans TestNG?
Listener est défini comme une interface qui modifie le comportement par défaut de TestNG. Comme son nom l'indique, les auditeurs «écoutent» l'événement défini dans le script sélénium et se comportent en conséquence. Il est utilisé dans le sélénium en implémentant l'interface d'écoute. Il permet de personnaliser les rapports ou les journaux TestNG. Il existe de nombreux types d'écouteurs TestNG disponibles.
Types d'auditeurs dans TestNG
Il existe de nombreux types d'écouteurs qui vous permettent de modifier le comportement du TestNG.
Voici les quelques écouteurs TestNG:
- IAnnotationTransformateur,
- IAnnotationTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Les interfaces ci-dessus sont appelées écouteurs TestNG. Ces interfaces sont utilisées dans le sélénium pour générer des logs ou personnaliser les rapports TestNG.
Dans ce tutoriel, nous allons implémenter ITestListener.
ITestListener a les méthodes suivantes
- La méthode OnStart- OnStart est appelée lorsqu'un test démarre.
- La méthode onTestSuccess- onTestSuccess est appelée sur le succès de n'importe quel Test.
- La méthode onTestFailure- onTestFailure est appelée en cas d'échec d'un test.
- La méthode onTestSkipped- onTestSkipped est appelée en cas de saut de tout test.
- onTestFailedButWithinSuccessPercentage- méthode est appelée à chaque fois que le test échoue mais se trouve dans le pourcentage de réussite.
- La méthode onFinish- onFinish est appelée une fois que tous les tests ont été exécutés.
Scénario de test:
Dans ce scénario de test, nous automatiserons le processus de connexion et implémenterons le 'ItestListener'.
- Lancez Firefox et ouvrez le site "http://demo.guru99.com/V4/"
- Connectez-vous à l'application.
Étapes pour créer un écouteur TestNG
Pour le scénario de test ci-dessus, nous allons implémenter 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 correctifs rapides comme indiqué dans l'écran ci-dessous:
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 implémente ITestListener{@Passer outrepublic void onFinish (ITestContext arg0) {// TODO Stub de méthode généré automatiquement}@Passer outrepublic void onStart (ITestContext arg0) {// TODO Stub de méthode généré automatiquement}@Passer outrepublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Stub de méthode généré automatiquement}@Passer outrepublic void onTestFailure (ITestResult arg0) {// TODO Stub de méthode généré automatiquement}@Passer outrepublic void onTestSkipped (ITestResult arg0) {// TODO Stub de méthode généré automatiquement}@Passer outrepublic void onTestStart (ITestResult arg0) {// TODO Stub de méthode généré automatiquement}@Passer outrepublic void onTestSuccess (ITestResult arg0) {// TODO Stub de méthode généré automatiquement}}
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 état de réussite, d'échec et d'omission.
Après modification, le code ressemble à-
package Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest implémente ITestListener{@Passer outrepublic void onFinish (résultat ITestContext){}@Passer outrepublic void onStart (résultat ITestContext){}@Passer outrepublic void onTestFailedButWithinSuccessPercentage (résultat ITestResult){}// Lorsque le cas de test a échoué, cette méthode est appelée.@Passer outrepublic void onTestFailure (résultat ITestResult){System.out.println ("Le nom du cas de test a échoué est: + Result.getName ());}// Lorsque le cas de test est ignoré, cette méthode est appelée.@Passer outrepublic void onTestSkipped (résultat ITestResult){System.out.println ("Le nom du cas de test ignoré est: + Result.getName ());}// Lorsque le cas de test démarre, cette méthode est appelée.@Passer outrepublic void onTestStart (résultat ITestResult){System.out.println (Result.getName () + "scénario de test démarré");}// Lorsque le cas de test est passé, cette méthode est appelée.@Passer outrepublic void onTestSuccess (résultat ITestResult){System.out.println ("Le nom du test réussi est: + Result.getName ());}}
Étape 2) Créez une autre classe "TestCases" pour l'automatisation du processus de connexion. Selenium exécutera ces «TestCases» pour se 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;Importez org.testng.annotations.Test;public class TestCases {Pilote WebDriver = nouveau FirefoxDriver ();// Test pour passer comme pour vérifier les écouteurs.@TestConnexion public void (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (Par.nom ("uid")). sendKeys ("mngr34926");driver.findElement (Par.nom ("mot de passe")). sendKeys ("amUpenu");driver.findElement (Par.nom ("btnLogin")). click ();}// Échec de force ce test pour vérifier l'écouteur@Testpublic void TestToFail (){System.out.println ("Cette méthode de test échoue");Assert.assertTrue (faux);}}
Étape 3) Ensuite, implémentez cet écouteur dans notre classe de projet régulière, à savoir "TestCases". Il existe deux manières différentes de se connecter à la classe et à l'interface.
La première méthode 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, enfin, 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 {Pilote WebDriver = nouveau FirefoxDriver ();// Test pour passer comme pour vérifier les écouteurs.@TestConnexion public void (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (Par.nom ("uid")). sendKeys ("mngr34926");driver.findElement (Par.nom ("mot de passe")). sendKeys ("amUpenu");driver.findElement (By.id ("")). click ();}// Échec forcé de ce test en tant qu'écouteur de vérification.@Testpublic void TestToFail (){System.out.println ("Cette méthode de test échoue");Assert.assertTrue (faux);}}
La structure du projet ressemble à:
É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 comme @Test.
Étape 5): Vérifiez la sortie qui s'affiche sur la console.
La sortie des 'TestCases' ressemblera à ceci:
[TestNG] En cours d'exécution:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlCas de test de connexion démarréLe nom du cas de test réussi est: LoginCas de test TestToFail démarréCette méthode de test échoueLe nom du cas de test a échoué est: TestToFailRÉUSSI: ConnexionÉCHEC: TestToFailjava.lang.AssertionError: attendu [true] mais trouvé [false]
Utilisation de Listener pour plusieurs classes.
Si le projet a plusieurs classes, l'ajout d'écouteurs à chacun d'eux peut être fastidieux et sujet aux erreurs.
Dans de tels cas, nous pouvons créer un testng.xml et ajouter une balise écouteurs en XML.
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 classe d'écouteur.
Résumé:
Les auditeurs sont tenus de générer des journaux ou de personnaliser les rapports TestNG dans Selenium Webdriver.
- 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 de pilote Web sélénium
- A démontré l'utilisation de Listener dans Selenium
- Implémentation des écouteurs pour plusieurs classes