Fermer

décembre 26, 2023

Amélioration des rapports de tests à l’aide d’ExtentReports dans Selenium / Blogs / Perficient


Selenium, un framework de tests d’automatisation largement utilisé, peut être complété par de puissants outils de reporting pour fournir des informations détaillées sur l’exécution des tests. L’un de ces outils est ExtentReports, une bibliothèque de rapports polyvalente qui s’intègre parfaitement à Selenium pour améliorer la visibilité et l’intelligibilité des résultats des tests.

Comprendre les rapports d’étendue

ExtentReports est une bibliothèque de rapports open source pour Java et .NET qui facilite la création de rapports interactifs et détaillés pour l’automatisation des tests. Il est particulièrement avantageux pour les projets basés sur Selenium, offrant des fonctionnalités telles que :

Visualisation riche : ExtentReports génère des rapports HTML visuellement attrayants avec des tableaux et des graphiques interactifs, fournissant un aperçu complet de l’exécution des tests.

Catégorisation des tests : Les tests peuvent être classés et étiquetés, ce qui facilite le filtrage et l’analyse des résultats en fonction de différents critères tels que la fonctionnalité, la priorité ou le statut.

Génération de journaux : ExtentReports permet la journalisation des événements pendant l’exécution des tests, fournissant un contexte supplémentaire et facilitant le dépannage.

Intégration de capture d’écran : Les captures d’écran peuvent être intégrées aux rapports, facilitant ainsi la validation visuelle des résultats des tests.

Intégration d’ExtentReports avec Selenium

Pour tirer parti des avantages d’ExtentReports dans Selenium, procédez comme suit :

Étape 1 : ajouter des dépendances

Ajoutez les dépendances nécessaires pour ExtentReports dans votre projet Selenium. Vous pouvez inclure le fichier JAR ExtentReports dans votre projet ou utiliser des outils de construction comme Maven ou Gradle.

Pour Maven, ajoutez la dépendance suivante :

<dependency>

    <groupId>com.aventstack</groupId>

    <artifactId>extentreports</artifactId>

    <version>4.1.6</version>

</dependency>

Étape 2 : Créer une instance ExtentReports

Dans votre script de test Selenium, créez une instance de ExtentReports au niveau de la classe. Cette instance sera utilisée pour créer et gérer les rapports de tests.

import com.aventstack.extentreports.ExtentReports;

import com.aventstack.extentreports.ExtentTest;

import com.aventstack.extentreports.reporter.ExtentHtmlReporter;


public class TestClass {

    ExtentReports extent;

    ExtentTest test;

    public void setup() {

        ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("extent-report.html");

        extent = new ExtentReports();

        extent.attachReporter(htmlReporter);

    }

}

Étape 3 : Créer des instances ExtentTest

Pour chaque scénario de test, créez une instance de ExtentTest. Cette instance représente un test spécifique et sera utilisée pour enregistrer des informations et marquer l’état du test.

public void executeTest() {

    test = extent.createTest("MyTest", "Description of MyTest");

    // Test steps and assertions go here

    test.pass("Test passed");

}

Étape 4 : enregistrer les événements et capturer des captures d’écran

Pendant l’exécution du test, utilisez l’instance ExtentTest pour enregistrer les événements et capturer des captures d’écran si nécessaire.

public void executeTestWithLogs() {

    test = extent.createTest("MyTestWithLogs", "Description of MyTestWithLogs");

    test.info("Step 1: Performing action");

    // Perform action

    test.info("Step 2: Verifying result");

    // Verify result

    test.pass("Test passed");

}

Étape 5 : générer et afficher des rapports

Après l’exécution du test, générez le rapport HTML à l’aide du code suivant. Le rapport sera enregistré à l’emplacement spécifié (dans ce cas, « extent-report.html »).

public void tearDown() {

    extent.flush();

}

En suivant ces étapes, vous pouvez intégrer de manière transparente ExtentReports dans vos tests Selenium, améliorant ainsi l’expérience globale de reporting de test. Les rapports générés fournissent une vue claire et détaillée de l’exécution des tests, permettant aux équipes d’analyser plus facilement les résultats et de prendre des décisions éclairées.

Exécution parallèle et threads :

L’exécution parallèle de tests est une pratique courante dans l’automatisation des tests afin de réduire le temps d’exécution global. Cependant, gérer l’exécution parallèle et garantir la sécurité des threads dans les rapports peut s’avérer difficile. ExtentReports fournit des fonctionnalités pour relever ces défis :

Sécurité du fil :

ExtentReports garantit la sécurité des threads en créant une instance distincte de la classe ExtentReports pour chaque thread. Cela signifie que chaque thread possède son propre contexte de reporting, ce qui évite les conflits et garantit que les rapports représentent avec précision les résultats des tests individuels.

Configuration de rapports pour une exécution parallèle :

Lors de la configuration d’ExtentReports pour une exécution parallèle, il est essentiel de créer une nouvelle instance ExtentReports pour chaque thread. Cela peut être fait en initialisant un nouvel objet ExtentHtmlReporter et ExtentReports pour chaque thread :

ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("extent-report-thread1.html");

ExtentReports extent1 = new ExtentReports();

extent1.attachReporter(htmlReporter);

Pour les threads suivants, créez des instances distinctes de ExtentHtmlReporter et ExtentReports.

Tests spécifiques aux threads :

Chaque thread doit créer ses propres instances ExtentTest pour garantir que les informations de test sont enregistrées dans le rapport correct. Par exemple:

ExtentTest test1 = extent1.createTest("TestThread1");

test1.pass("Test passed in Thread 1");

Création de rapports dans un environnement multithread :

ExtentReports gère automatiquement la génération de rapports HTML distincts pour chaque thread. Une fois l’exécution parallèle terminée, les rapports individuels peuvent être regroupés ou analysés séparément, en fonction des exigences des tests.

Envoi de rapports par courrier électronique :

L’envoi d’ExtentReports par courrier électronique peut être crucial pour partager les résultats des tests avec les parties prenantes, les membres de l’équipe ou les clients. ExtentReports n’a pas de fonctionnalité de messagerie intégrée, mais vous pouvez l’intégrer à des services de messagerie ou à des pipelines CI/CD :

Configuration des paramètres de messagerie :

Pour envoyer des rapports par courrier électronique, vous devez configurer les paramètres de messagerie dans votre cadre d’automatisation ou votre outil CI/CD. Vous pouvez utiliser des bibliothèques Java comme JavaMail ou des fonctionnalités intégrées de la plateforme CI/CD de votre choix.

Joindre des rapports aux e-mails :

Une fois l’exécution de votre test terminée, le(s) fichier(s) HTML ExtentReports généré(s) peuvent être joints à un e-mail. La plupart des bibliothèques de messagerie ou des plateformes CI/CD vous permettent de joindre facilement des fichiers.

// Example using JavaMail

MimeMessage message = new MimeMessage(session);

message.setSubject("Test Results");

message.setFrom(new InternetAddress("sender@example.com"));

message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com"));

// Attach ExtentReports HTML file

message.attach(new MimeBodyPart(new FileDataSource("path/to/extent-report.html")));

Conclusion:

En configurant les paramètres de messagerie et en intégrant ExtentReports à votre pipeline CI/CD, vous pouvez garantir que les parties prenantes reçoivent des mises à jour rapides et automatisées sur les résultats des tests.






Source link

décembre 26, 2023