TestNG Génération de rapports dans Selenium: Comment générer ?
⚡ Résumé intelligent
TestNG Les rapports sont les fichiers de résultats HTML par défaut. TestNG écrit dans le dossier test-output après chaque exécution, indiquant quels cas de test ont réussi, échoué ou ont été ignorés, ainsi que tous les journaux du rapporteur.
Quels sont TestNG Rapports?
TestNG Rapports sont les rapports HTML par défaut qui sont générés une fois les cas de test exécutés à l'aide de TestNG. Ces rapports vous aident à identifier les informations sur les cas de test et l'état d'un projet. TestNG rapports dans Selenium Enregistrez trois résultats pour chaque méthode de test — réussite, échec et ignoré — afin de pouvoir consulter en un coup d'œil les données relatives aux cas de test.
La génération de rapports est très importante lorsque vous effectuez des tests d'automatisation ainsi que pour des tests manuels.
- En examinant le résultat, vous pouvez facilement identifier le nombre de cas de test réussis, échoués et ignorés.
- En consultant le rapport, vous saurez quel est l'état d'avancement du projet.
Selenium WebDriver est utilisé pour automatiser l'application web, mais il ne génère aucun rapport par lui-même.
- Le TestNG générera le rapport par défaut.
- Lorsque vous exécutez le fichier testng.xml et actualisez le projet, vous obtenez un dossier test-output contenant les rapports de sortie. TestNG.
- Faites un clic droit sur emailable-report.html et sélectionnez l'option Ouvrir avec le navigateur web.
À noter: le comportement décrit ici reste inchangé dans TestNG 7.x. Sorties de TestNG Les versions 7.6 et suivantes nécessitent JDK 11 ou une version supérieure ; par conséquent, un projet plus ancien peut nécessiter une mise à niveau de son niveau JDK avant que les rapports ne soient produits.
Types d' TestNG Rapports dans le dossier de sortie des tests
Avant d'ouvrir un seul fichier, il est utile de savoir ce que contient réellement le dossier de sortie des tests. TestNG Il génère plusieurs artefacts à chaque exécution, et chacun d'eux répond à une question différente.
| Fichier ou dossier | Ce qu'il contient | Quand c'est utile |
| index.html | Le rapport d'atterrissage qui donne accès aux résultats, aux groupes, aux horaires et aux vues de sortie du rapporteur. | Analyse détaillée d'une course. |
| rapport-envoyable par courriel.html | Une seule page autonome récapitulant les méthodes réussies, échouées et ignorées pour chaque classe. | Partager un résultat avec des personnes qui n'ouvrent pas le projet. |
| testng-results.xml | Le fichier XML lisible par machine, généré par le rapporteur XML intégré, avec l'état et la durée de chaque méthode. | Alimenter un tableau de bord ou un analyseur personnalisé. |
| rapports de Junit | JUnit- Fichiers XML au format, un par classe de test. | Tout plug-in CI qui lit le JUnit Format du résultat. |
| testng-failed.xml | Un fichier de suite généré qui répertorie uniquement les méthodes ayant échoué. | Relancer uniquement les tests ayant échoué, au lieu de l'ensemble de la suite. |
Les deux fichiers HTML sont ceux que ce tutoriel ouvre ensuite ; la procédure ci-dessous commence donc par emailable-report.html.
Comment générer des rapports dans Selenium
Méthode 1 : emailable-report.html
- Cliquez sur l'option « emailable-report.html »
- Cliquez sur l'option navigateur Web
La capture d'écran ci-dessous montre l'ouverture du fichier emailable-report.html depuis le dossier test-output.
Les rapports de sortie dans TestNG le rapport ressemblera à ci-dessous si les deux cours sont réussis :
Considérez le scénario dans lequel vous échouez intentionnellement au scénario de test, c'est-à-dire la classe DemoB. Convertissez ensuite les deux classes en fichier de suite testng.xml et exécutez-le. Ensuite, le résultat ressemblera à ceci. Il montrera le cas de test ayant échoué.
Voici le résultat pour la classe DemoB :
De même, le résultat de la classe DemoA ressemblera à ceci :
Méthode 2 : index.html
- Faites un clic droit sur index.html dans le répertoire du projet.
- Sélectionnez l’option Ouvrir avec l’option du navigateur Web. Il affichera le résultat dans l’ordre suivant.
La capture d'écran ci-dessous montre l'ouverture du fichier index.html depuis le répertoire du projet.
Le résultat ressemblera à ceci:
Méthode 3 : classe de journaliste
Parallèlement à ces TestNG méthodes générées par les rapports, vous pouvez utiliser le fichier object.properties pour stocker les journaux générés par le système ainsi que les journaux générés par l'utilisateur. Mais l'un des moyens les plus simples de stocker les informations de journalisation lors des tests consiste à utiliser Classe de journaliste.
Reporter.se connecter Selenium est une classe présente dans TestNG pour Selenium rapport. Il propose 4 méthodes différentes pour stocker les informations du journal :
- Reporter.log(String s);
- Reporter.log(String s, Boolean logToStandardOut);
- Reporter.log (String s, niveau int);
- Reporter.log(String s, niveau int, Boolean logToStandardOut) ;
Le deuxième argument détermine si le message est également affiché dans le rapport et dans la console, tandis que l'argument « level » contrôle le niveau de verbosité du message.
Exemple:
Créez deux classes telles que DemoA et DemoB et écrivez le code suivant dans les classes.
Pour la classe DémoA ;
- Le Code Le fonctionnement de DemoA a déjà été expliqué ci-dessus. Ici, vous utilisez méthode log de la classe Reporter. (Pour implémenter votre propre classe de reporting, celle-ci doit implémenter l'interface org.testng.IReporter.)
- La méthode log est une méthode statique de la classe Reporter. Vous accédez donc à cette méthode via la classe Reporter.
- La méthode log est utilisée pour stocker les informations de journal écrites dans le programme. En consultant les informations du journal, vous saurez facilement où exactement l'exécution du programme est arrêtée.
La capture d'écran ci-dessous montre les appels Reporter.log placés à l'intérieur de la classe DemoA.
Pour la démo de classe :
- Maintenant, créez le fichier testng.xml en sélectionnant ces deux classes et
- Sélectionnez exécuter comme et
- Cliquez sur convertir en test.
- Exécutez ensuite ce fichier testng.xml en sélectionnant exécuter en tant que et en sélectionnant la suite testng.
- Actualisez ensuite le projet et ouvrez le dossier test-output.
- Dans le dossier test-output, ouvrez le fichier emailable-report.html. Cela ressemblera à :
De même, vous aurez également un projet Output for Demo B.
- Dans le dossier test-output, ouvrez le fichier index.html. Il ressemblera à ceci :
Cliquez sur la sortie du journaliste. Il ouvrira les informations de journalisation, quelles que soient les informations écrites dans les méthodes de test.
Cliquez sur les horaires. Cela montrera combien de temps il a fallu pour exécuter la méthode de test présente en classe en utilisant TestNG outils de reporting.
Comment personnaliser TestNG Rapports avec ITestListener et IReporter
Les trois méthodes ci-dessus utilisent ce que TestNG produit par défaut. Lorsqu'une équipe a besoin d'une mise en page différente, de champs supplémentaires ou d'une vue de progression en direct, TestNG expose deux points d'extension au lieu de vous demander de corriger le rapport par défaut.
- ITestListener Vous recevez des notifications en temps réel à chaque début, réussite, échec ou omission de test. Utilisez cette fonction lorsque l'information doit être capturée au moment précis où l'événement se produit — une capture d'écran en cas d'échec, par exemple.
- I Reporter Une notification est envoyée une fois par séquence, après chaque exécution, et les objets reçus décrivent l'ensemble du processus. Utilisez cette fonction lorsque le résultat est un document final, tel qu'un PDF ou une page HTML personnalisée.
Voici à quoi ressemble un écouteur qui transmet chaque résultat au rapport via la classe Reporter.
import org.testng.ITestListener; import org.testng.ITestResult; import org.testng.Reporter; public class ReportListener implements ITestListener { @Override public void onTestSuccess(ITestResult result) { Reporter.log("PASSED: " + result.getName(), true); } @Override public void onTestFailure(ITestResult result) { Reporter.log("FAILED: " + result.getName(), true); } @Override public void onTestSkipped(ITestResult result) { Reporter.log("SKIPPED: " + result.getName(), true); } }
L'enregistrement de l'écouteur se fait dans le même fichier de suite testng.xml que vous avez déjà créé pour DemoA et DemoB.
<suite name="Demo Suite"> <listeners> <listener class-name="ReportListener" /> </listeners> <test name="Demo Test"> <classes> <class name="DemoA" /> <class name="DemoB" /> </classes> </test> </suite>
Il est utile de connaître deux options de ligne de commande lors de vos expérimentations. -d Cette option modifie le répertoire dans lequel les rapports sont écrits, et -usedefaultlisteners faux désactive les rapporteurs intégrés afin que seul votre propre écouteur soit actif. Ces deux options sont décrites dans la documentation officielle. TestNG documentation relative à la journalisation et aux résultats, qui documente également les propriétés acceptées par le rapporteur XML intégré.
Un écouteur est enregistré une seule fois et s'applique ensuite à chaque classe de la suite, ce qui explique pourquoi les équipes qui gèrent de grandes quantités de données ont besoin de cet écouteur. tests d'automatisation Les suites de tests préfèrent généralement cette méthode à l'ajout manuel de lignes de journalisation à chaque méthode de test.
TestNG Rapports par défaut vs ExtentReports vs Allure
Les rapports par défaut suffisent pour une petite suite logicielle, mais ils ne contiennent ni historique ni graphiques. Deux bibliothèques open source sont généralement ajoutées lorsque la suite logicielle s'étoffe, et toutes deux sont compatibles avec TestNG.
| Capability | TestNG défaut | Rapports d'étendue | Rapport d'attrait |
| effort de mise en place | Aucun — produit automatiquement | Ajoutez la bibliothèque et écrivez le code du rapporteur | Ajoutez l'adaptateur, puis générez le rapport à partir des résultats. |
| Graphiques et tableaux de bord | Non | Oui | Oui |
| Captures d'écran | Uniquement via le balisage Reporter.log | API de pièces jointes intégrée | API de pièces jointes intégrée |
| Historique et tendances de la course | Non | Par le biais du composant serveur optionnel | Oui, à partir des résultats précédents enregistrés |
| Couverture du cadre | TestNG uniquement | Java et .NET | Cadre agnostique |
Commencez par les rapports par défaut tant que la suite est réduite. Passez ensuite à Rapports d'étendue lorsque les parties prenantes demandent des tableaux de bord lisibles, et pour Rapport d'attrait lorsque l'historique des tests instables entre les différentes versions devient la question cruciale. Quel que soit votre choix, le rapport est généralement publié par la tâche de compilation, comme expliqué dans la documentation. Jenkins intégration continue tutoriel.












