Comment générer des rapports d'étendue dans Selenium
Publié: 2021-06-21La bibliothèque open source utilisée pour l'automatisation des tests dans Selenium est ExtentReports. Cadres de test ; NUnit, JUnit, etc. peuvent être intégrés à la bibliothèque. Les rapports intégrés sont créés en sélénium via les frameworks de TestNG et JUnit, mais les rapports d'étendue restent le premier choix des testeurs d'automatisation de sélénium. Les rapports d'étendue dans le sélénium donnent plus d'informations sur l'exécution des scripts d'automatisation. Les résultats sont représentés sous forme de camemberts et sont essentiellement des documents HTML. Des détails tels que les instantanés et les journaux personnalisés peuvent être générés via la bibliothèque.
Après l'exécution réussie d'un test automatisé, un rapport d'exécution du test doit être généré par les testeurs. Un rapport par défaut est fourni par le TestNG, mais les détails ne sont pas fournis. Avec l'applicabilité de l'API ExtentReport, des rapports interactifs peuvent être générés via des configurations simples. Les frameworks Java et .Net tels que JUnit, NUnit et TestNG, etc. sont pris en charge par la bibliothèque.
Dépendance du maven du rapport d'étendue
La source
Les rapports sur l'étendue du sélénium se composent de deux classes :
Table des matières
1. Classe ExtentReports
Le testeur spécifie un chemin et en fonction du chemin spécifié, des rapports HTML sont générés à partir de la classe ExtentReports. Soit il y a génération d'un nouveau rapport, soit écrasement d'un rapport existant. Il est décidé en fonction de la valeur booléenne. La valeur booléenne par défaut est "true", ce qui signifie qu'il y aura écrasement de toutes les données qui existaient dans le passé.
2. Classe ExtentTest
Les étapes de test sont consignées via la classe ExtentTest dans les rapports HTML générés via la méthode ci-dessus.
3. Étendue HtmlReporter
Un fichier HTML est créé par cette classe.
Les fonctions intégrées répertoriées peuvent être utilisées avec les classes répertoriées ci-dessous.
- startTest : les conditions préalables d'un cas dans le test sont exécutées
- endTest : les postconditions d'un cas dans le test sont exécutées.
- Méthode du journal : l'état de chaque étape du test est consigné dans le rapport HTML généré via le journal.
- Flush : un nouveau rapport est créé en supprimant les données d'un rapport précédent.
Les valeurs suivantes sont utilisées pour indiquer l'état d'un test : PASS, SKIP, FAIL et INFO.
Comment créer des rapports d'étendue
Voici quelques conditions préalables à la génération d'un rapport d'étendue :
- Préinstallation et configuration de Java.
- L'installation de TestNG.
- Téléchargement des fichiers Jar du rapport d'étendue (version 2.41.2).
- Exigence d'extent-config.xml qui permet la configuration du rapport HTML.
Les étapes de base à suivre pour la génération de rapports d'étendue sont les suivantes :
- Un projet de test doit être créé.
- L'étendue du fichier jar du rapport est à télécharger.
- Le fichier jar du rapport d'étendue est ajouté au projet.
- Une classe implémentée est créée.
Étapes de génération d'un rapport d'étendue
- Les rapports d'étendue peuvent être générés dans WebDriver de Selenium via l'importation d'un fichier jar qui est extentreports-java-2.41.2.jar. Le contenu du fichier jar doit être extrait dans un répertoire une fois téléchargé.
- Les fichiers Jar extraits du fichier ZIP téléchargé doivent être ajoutés au projet de construction. L'option Build Path -> Configure Build Path est utilisée.
- Une classe Java est nouvellement créée pour l'étendue signalée via le code suivant.
La source
Explication du code
Avec la méthode startTest, l'exécution du test commence. L'objet des rapports d'étendue est initialisé. L'objet de rapport d'étendue utilise n'importe quel chemin défini par l'utilisateur comme paramètre qui lui est transmis.
@beforeclass : L'utilisation des rapports d'étendue est démontrée par le code.
@test : les actions suivantes sont automatisées via cette classe :
- Ouverture du navigateur chrome via l'URL www.google.com .
- Le titre de la page doit être validé avec la valeur comme prévu une fois qu'il est ouvert.
- L'état du cas du test doit être consigné en tant que RÉUSSITE ou ÉCHEC à l'aide de la méthode de consignation des rapports d'étendue.
@afterclass : Le code pour l'exécution d'un cas de postconditions de test est inclus dans cette classe. Il inclut le code pour la fin du test ou le rinçage du rapport. Sans l'utilisation de la méthode flush(), les rapports d'étendue en sélénium ne seront pas générés.
Capturez des captures d'écran dans les rapports d'étendue
1. Par la méthode de capture
- L'utilisation d'une capture d'écran pendant le test présente plusieurs avantages.
- Si le logiciel commence à agir de manière erronée, les testeurs pourraient identifier le problème en observant les captures d'écran.
- Par conséquent, si l'exécution du test rencontre des problèmes, les captures d'écran permettront aux testeurs de déboguer le script de test.
- Les captures d'écran doivent être capturées uniquement lors de l'échec d'un test, car plus de mémoire est consommée par les captures.
- Le code suivant utilisé pour capturer une capture d'écran est tiré de
La source
2. Explication du code
- Le WebDriver sélénium actuel est capturé sous forme de capture d'écran via la méthode getScreenShotAs(). Il est ensuite stocké sous diverses formes de sortie.
Fichier scrFile = (pilote (TakesScreenshot)).getScreenshotAs(OutputType.File);
- Un objet du fichier est renvoyé via la méthode getScreenShotAs et stocké dans une variable du fichier. Pour utiliser cette méthode, il est obligatoire de caster l'instance du pilote Web pour prendre une capture d'écran.
File Dest = new File("scr/../Errimages/" + System.currentTimeMillis()+ ".png");
- Un dossier portant le nom de "ErrImages" est créé dans le dossier "src" via le code ci-dessus. Le fichier est enregistré dans le dossier créé avec le nom du fichier en tant qu'heure du système actuel.
Chaîne errflpath = Dest, getAbsolutePath();
Fileutils.copyFile(scrFile, Dest);
returnerrflpath ;
- Les images d'erreur générées sont copiées dans un dossier de destination.
3. Méthode du journal
- Une méthode intégrée est utilisée dans la méthode log. Le addScreenCapture de la classe Extent est utilisé pour capturer une capture d'écran, puis ajouté aux rapports d'étendue générés.
test.log(LogStatus.Fail,test.addScreenCapture(capture(driver))+ "Test Failed");
Avantages des rapports d'étendue
- L'utilisation des rapports d'étendue est facile.
- Les graphiques circulaires sont utilisés pour afficher les résultats.
- Le pourcentage d'un cas réussi d'un test est fourni.
- La possibilité d'ajouter les détails de l'environnement de manière naturelle.
- Par rapport aux autres rapports, le rapport d'étendue offre la possibilité de personnalisation.
- Des rapports plus interactifs peuvent être générés via l'API d'extension. Les rapports interactifs peuvent se présenter sous la forme d'une vue graphique, d'une capture d'écran à chaque étape de test, d'une vue de tableau de bord et de rapports pouvant être envoyés par e-mail.
- L'intégration avec les frameworks JUnit, TestNG et NUnit est possible.
- L'exécution parallèle des exécutions de test est possible avec la génération d'un seul rapport pour toutes les exécutions parallèles.
- Le rapport peut être configuré.
- Pour l'exécution de chaque cas de test, le temps pris est affiché.
- Un suivi facile des exécutions de plusieurs cas de test dans une seule suite est possible.
- Sur la base des rapports du test, les résultats peuvent être filtrés. De plus, les résultats pas à pas peuvent être filtrés à travers les options de réussite/échec/info.
- Des catégorisations de rapports sont fournies pour des catégories telles que Régression/fonctionnel, etc.
- Les journaux des étapes de test peuvent être ajoutés aux rapports.
Exemple de rapports d'étendue dans Selenium
Un exemple est montré pour vous permettre de comprendre le processus de génération de maven de rapport d'étendue.
Etape 1 : Un projet maven et une classe sont à créer BasicExtentReport.java avec l'ajout d'un code disponible ici
- Un fichier HTML autonome est généré à partir de la classe 'ExtentHtmlReporter'.
- 'ExtentHtmlReporter(java.io.File)' est accepté par cette classe et le chemin 'ExtentHtmlReporter(java.lang.String filePath)'.
- Le chemin du fichier est transmis pour enregistrer les rapports.
- La méthode config() de la classe 'ExtentHtmlReporter' permet diverses options de configuration. Les éléments peuvent être modifiés via le code pour modifier l'apparence du rapport d'étendue, y compris l'horodatage, le nom du rapport, etc.
- Le statut de chaque étape du test est signalé par 'AfterMethod' et ainsi le statut du test est mis à jour comme Pass, Fail, Skip, etc. en cas d'erreur, un message est généré pour donner les informations. Cela se fait via 'result.getThrowable()'.
- Les étiquettes du statut sont créées à l'aide de la classe MarkupHelper qui colore également le statut du rapport.
Étape 2 : La transmission du système d'exploitation et des paramètres du navigateur se fait en créant un fichier testng.xml. Le code est disponible sur le site Web mentionné.
Étape 3 : Un autre code est ajouté au fichier pom.cml.
Étape 4 : L'exécution du programme génère le rapport résultant .
La source
Pour visualiser les rapports d'échec, les tests échoués doivent être cliqués. Cela affichera l'état du test ainsi que la raison de l'échec du test.
Voici quelques éléments supplémentaires liés aux rapports d'étendue :
- Par souci d'apparence, le thème existant dans un rapport peut être modifié.
- Selon la commodité de l'utilisateur, la vue du tableau de bord peut être masquée ou affichée.
- Dans le cas de l'exécution de plusieurs tests, un cas de test peut être recherché étape par étape.
- Le temps total nécessaire à l'exécution du test, y compris l'heure de début et l'heure de fin, est affiché à l'utilisateur.
- Des filtres supplémentaires sont présents dans un rapport. Les résultats peuvent être filtrés en fonction du statut des tests, comme des tests réussis, des tests échoués ou des cas de test où seules des informations sont présentes.
Apprenez des cours de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
Conclusion
Pour la génération de rapports personnalisables, les rapports d'étendue sont le meilleur moyen. Étant une bibliothèque open-source avec une configuration facile avec le sélénium, les rapports d'étendue sont définitivement devenus le meilleur choix pour tous les testeurs d'automatisation. L'article a brièvement discuté des rapports d'étendue, de la manière de les générer et de leur utilité. Les avantages peuvent être récoltés grâce à la connaissance de la programmation logicielle qui est à la base de la génération des rapports d'étendue.
Si vous souhaitez apprendre et explorer les avantages de la programmation logicielle, consultez le cours du programme Executive PG en développement de logiciels - Spécialisation en développement Full Stack , proposé par upGrad . Il s'agit d'un cours spécialement conçu pour les professionnels débutants de la tranche d'âge de 21 à 45 ans. Fournissant une plate-forme pour des conférences en ligne et des sessions interactives avec des expériences pratiques, le cours offre une assurance de placement dans les principales industries. Notre équipe est disponible pour toute demande.
Qu'est-ce qu'un générateur de rapports Selenium ?
Selenium Report Builder ou Selenium IDE est un plugin Firefox pour Selenium qui permet de créer et de modifier les cas de test Selenium. Cela rend le processus d'automatisation plus efficace et réduit les efforts nécessaires pour créer différents rapports. C'est un moyen confortable d'exécuter des tests et fournit un aperçu de l'état actuel. Les rapports sont générés dans différents formats tels que texte, PDF, CSV, HTML, etc.
Que peut-on tester automatiquement avec Selenium ?
Selenium est un outil d'automatisation des applications Web à des fins de test et peut être utilisé pour les tests de régression. Selenium peut automatiser tout ce qu'un utilisateur peut faire dans un navigateur. La plupart des sites Web ont une sorte de fonctionnalité qui permet à leurs employés d'accomplir plus facilement des tâches telles que la commande d'inventaire, le traitement des commandes, la mise à jour du site Web, etc. Selenium peut être utilisé pour tester des applications Web et des sites Web. C'est un langage de haut niveau qui prend en charge divers langages de programmation comme JAVA et C#. Selenium est utilisé pour automatiser le navigateur et offre aux développeurs d'applications Web la possibilité d'écrire des tests automatisés à exécuter sur des applications Web.
Qu'est-ce que la grille de sélénium ?
Selenium Grid est un outil qui permet d'exécuter des tests automatisés sur plusieurs navigateurs (ou d'autres nœuds de grille). Il permet l'exécution parallèle de ces tests avec plusieurs configurations (emplacements, navigateurs, systèmes d'exploitation) et plusieurs navigateurs à la fois. Les tests eux-mêmes peuvent être exécutés en mode sans tête afin de ne nécessiter aucune interface graphique. La grille offre une exécution asynchrone des tâches et est capable de gérer des centaines de tâches simultanément. La grille de sélénium est donc un modèle de hub and spoke pour exécuter des cas de test. Grid permet aux utilisateurs de regrouper plusieurs navigateurs pour exécuter un seul cas de test. Une fois configuré, il peut être utilisé pour exécuter des tests sur plusieurs machines ou navigateurs à la demande ou selon un calendrier. Selenium Grid peut être utilisé pour paralléliser l'exécution des tests, mettre à l'échelle les tests et augmenter la couverture des tests.