guide generate extent reports selenium webdriver
Comment générer des rapports d'étendue dans Selenium WebDriver:
Selenium fournit des rapports intégrés utilisant des frameworks tels que JUnit et TestNG.
Bien que les rapports intégrés fournissent des informations sur les étapes exécutées dans le cadre du scénario de test, ils nécessitent davantage de personnalisation pour être partagés avec toutes les principales parties prenantes du projet.
Extent Reports est un rapport HTML personnalisable développé par Anshoo Arora qui peut être intégré à Selenium WebDriver à l'aide des frameworks JUnit et TestNG.
Ce didacticiel vous donnera un guide complet étape par étape sur la façon de générer des rapports étendus dans Selenium WebDrive avec des exemples de codes.
Vous trouverez ci-dessous un instantané du rapport intégré fourni par le framework TestNG:
Les rapports étendus offrent plusieurs avantages par rapport aux rapports intégrés générés via JUnit et TestNG, tels que la représentation de diagramme à secteurs, la génération de rapports par étapes de test, l'ajout de captures d'écran, etc., à chaque étape de test et une interface utilisateur présentable qui peut être partagée avec toutes les parties prenantes du projet.
Vous trouverez ci-dessous un aperçu d'un exemple de rapport d'étendue dans la représentation de graphique à secteurs
(Noter:Cliquez sur n'importe quelle image pour une vue agrandie)
Ce que vous apprendrez:
- Avantages de l'utilisation des rapports d'étendue
- Utilisation des rapports étendus dans Selenium Webdriver
- Exemple de code pour les rapports d'étendue
- Rapport de synthèse des tests
- Rapport graphique de camembert
- Capturer une capture d'écran dans les rapports étendus
- Conclusion
- lecture recommandée
Avantages de l'utilisation des rapports d'étendue
Les rapports d'étendue présentent plusieurs avantages et peu d'entre eux sont décrits ci-dessous.
- Rapport HTML personnalisable avec représentation par étapes et en camembert.
- Affiche le temps nécessaire à l'exécution du scénario de test dans le rapport.
- Chaque étape de test peut être associée à une capture d'écran.
- Plusieurs exécutions de cas de test dans une même suite peuvent être suivies facilement.
- Peut être facilement intégré aux frameworks TestNG et JUnit.
Utilisation des rapports étendus dans Selenium Webdriver
Les rapports d'étendue contiennent deux classes principales fréquemment utilisées.
- Classe ExtentReports
- Classe ExtentTest
Syntaxe:
Rapports ExtentReports = new ExtentReports («Chemin du répertoire pour stocker le fichier HTML résultant», vrai / faux);
questions d'entretien pour le développeur .net
ExtentTest test = reports.startTest («TestName»);
La classe Extent Reports est utilisée pour générer un rapport HTML sur le chemin spécifié par l'utilisateur. L'indicateur booléen indique si le rapport existant doit être écrasé ou si un nouveau rapport doit être créé. La valeur «true» est la valeur par défaut, ce qui signifie que toutes les données existantes seront écrasées.
La classe Extent Test est utilisée pour consigner les étapes de test dans le rapport HTML généré.
Les classes ci-dessus peuvent être utilisées avec les méthodes intégrées fréquemment utilisées qui sont indiquées ci-dessous.
tester le nombre de tests par jour
- startTest
- endTest
- Enregistrer
- affleurer
Les méthodes startTest et endTest sont utilisées pour exécuter les conditions préalables et les post-conditions d'un cas de test, tandis que la méthode log est utilisée pour consigner l'état de chaque étape de test sur le rapport HTML résultant. La méthode Flush est utilisée pour effacer toutes les données précédentes du rapport et créer un nouveau rapport.
L'état du test peut être l'une des valeurs suivantes:
- PASSE
- ÉCHOUER
- SAUTER
- INFO
Syntaxe:
reports.endTest ();
test.log (LogStatus.PASS, «Test réussi»);
test.log (LogStatus.FAIL, «Test Failed»);
test.log (LogStatus.SKIP, «Test ignoré»);
test.log (LogStatus.INFO, «Info test»);
La méthode du journal prend en compte deux paramètres, le premier paramètre est l'état du test et le second paramètre est le message à imprimer sur le rapport résultant.
Exemple de code pour les rapports d'étendue
Mentionné ci-dessous sont la séquence d'étapes pour utiliser les rapports d'étendue dans Selenium Webdriver dans Junit.
Étape 1:
Les rapports d'étendue peuvent être directement utilisés dans sélénium WebDriver en important le fichier JAR - extentreports-java-2.41.2.jar qui peut être téléchargé ici .
Une fois le fichier ZIP téléchargé, extrayez le contenu du fichier ZIP dans un dossier.
Étape 2:
Ajoutez les fichiers jar présents dans le fichier ZIP au chemin de construction du projet à l'aide de l'option Chemin de construction -> Configurer le chemin de construction.
Étape 3:
Créez une nouvelle classe JAVA avec le code ci-dessous pour les rapports d'étendue.
package com.objectrepository.demo; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.relevantcodes.extentreports.ExtentReports; import com.relevantcodes.extentreports.ExtentTest; import com.relevantcodes.extentreports.LogStatus; public class ExtentDemo { static ExtentTest test; static ExtentReports report; @BeforeClass public static void startTest() { report = new ExtentReports(System.getProperty('user.dir')+'\ExtentReportResults.html'); test = report.startTest('ExtentDemo'); } @Test public void extentReportsDemo() { System.setProperty('webdriver.chrome.driver', 'D:\SubmittalExchange_TFS\QA\Automationrdparty\chrome\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.get('https://www.google.co.in'); if(driver.getTitle().equals('Google')) { test.log(LogStatus.PASS, 'Navigated to the specified URL'); } else { test.log(LogStatus.FAIL, 'Test Failed'); } } @AfterClass public static void endTest() { report.endTest(test); report.flush(); } }
Explication du code
@Avant les cours:
Le code ci-dessus illustre l'utilisation des rapports d'étendue. L'exécution du scénario de test commence par la méthode startTest, qui implique l'initialisation de l'objet Rapports d'étendue. Le paramètre transmis à l'objet Rapports d'étendue peut être n'importe quel chemin défini par l'utilisateur valide.
Par souci de simplicité, l'exemple utilise le répertoire de projet actuel pour générer le rapport HTML résultant. L'instruction suivante implique l'initialisation de l'objet ExtentTest avec la valeur de retour de la méthode startTest.
@Test:
La classe de test comprend les étapes suivantes:
- Ouvrez le navigateur Chrome avec cette URL https://www.google.com
- Validez le titre de la page avec la valeur attendue une fois la page ouverte.
- Enregistrez l'état du scénario de test comme PASS / FAIL à l'aide de la méthode de journalisation des rapports d'étendue.
@Après les cours:
After class inclut le code pour exécuter les postconditions du scénario de test, telles que la fin du test à l'aide de la méthode endTest et le vidage du rapport. Veuillez noter que le rapport ne sera pas généré si la méthode flush () n'est pas utilisée.
T est Summary Report
Rapport graphique de camembert
Capturer une capture d'écran dans les rapports étendus
La capture d'écran et l'exécution du test aideront un testeur à déboguer le script de test en cas de problèmes rencontrés lors de l'exécution du test. Cependant, il est conseillé de capture d'écran uniquement si une étape de test échoue car les images consommeront plus de mémoire si elles sont capturées à chaque étape de test.
Des captures d'écran peuvent être capturées pour chaque étape ayant échoué en utilisant le code ci-dessous.
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ 'Test Failed'); public static String capture(WebDriver driver) throws IOException { File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); File Dest = new File('src/../ErrImages/' + System.currentTimeMillis() + '.png'); String errflpath = Dest.getAbsolutePath(); FileUtils.copyFile(scrFile, Dest); return errflpath; }
Explication du code
Méthode de capture:
#1) La méthode getScreenShotAs () est utilisée pour capturer la capture d'écran de l'instance WebDriver actuelle et la stocker sous diverses formes de sortie.
Fichier scrFile = ((pilote TakesScreenshot)) .getScreenshotAs (OutputType.FILE);
meilleurs bloqueurs de pop-up pour chrome
#deux) La méthode getScreenShotAs renvoie un objet fichier qui doit être stocké dans une variable de fichier. Veuillez noter que la conversion de l'instance du pilote Web en Prendre une capture d'écran est obligatoire si vous souhaitez utiliser la méthode.
# 3) File Dest = nouveau fichier ('src /../ ErrImages /' + System.currentTimeMillis () + '.png');
# 4) L'instruction ci-dessus crée un dossier nommé «ErrImages» dans le dossier «src» et stocke le nom du fichier comme l'heure système actuelle.
# 5) Chaîne errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
returnerrflpath;
# 6) Les instructions ci-dessus copient les images d'erreur dans le dossier de destination.
Méthode de journalisation:
La méthode Log utilise la méthode intégrée, addScreenCapture de la classe Extent Test pour récupérer la capture d'écran et l'ajouter au rapport d'étendue.
test.log (LogStatus.FAIL, test.addScreenCapture (capture (pilote)) + «Test Failed»);
Le message enregistré sur la méthode du journal peut inclure un message détaillé comprenant les résultats attendus et réels à des fins de débogage.
Production:
Conclusion
Les rapports étendus sont l'un des meilleurs moyens intégrés de générer des rapports HTML personnalisables avec une interface utilisateur agréable dans le pilote Web Selenium.
C'est une bibliothèque open source qui peut être facilement configurée avec Selenium, ce qui en fait le meilleur choix pour les testeurs d'automatisation.
J'espère que vous auriez maintenant une idée claire des rapports étendus.
lecture recommandée
- Tutoriel Cucumber Selenium: Intégration Cucumber Java Selenium WebDriver
- Introduction à Selenium WebDriver - Tutoriel Selenium # 8
- Implémentation de notre premier script WebDriver - Tutoriel Selenium WebDriver # 10
- FAQ sur le sélénium
- Comment gérer les alertes / fenêtres contextuelles dans Selenium WebDriver - Tutoriel Selenium # 16
- Attente implicite et explicite dans Selenium WebDriver (types d'attentes Selenium)
- Comment exécuter Selenium WebDriver dans différents navigateurs populaires
- Configuration et installation complètes de WebDriver avec Eclipse - Tutoriel Selenium # 9