Recherche…


Introduction

Cette rubrique traite de la création de rapports HTML pour les tests de sélénium. Il existe différents types de plug-ins disponibles pour les rapports et les plus utilisés sont Allure, ExtentReports et ReportNG.

ExtentReports

Cet exemple couvre l'implémentation d'ExtentReports dans Selenium à l'aide de TestNG, Java et Maven.

ExtentReports est disponible en deux versions, communautaire et commerciale. Pour la facilité et la démonstration, nous utiliserons la version communautaire.

1. dépendance

Ajoutez la dépendance dans votre fichier Maven pom.xml pour les rapports d'étendue.

   <dependency>
        <groupId>com.aventstack</groupId>
        <artifactId>extentreports</artifactId>
        <version>3.0.6</version>
    </dependency>

2. Configurez les plugins

Configurez le plugin maven surefire comme ci-dessous dans pom.xml

    <build>
    <defaultGoal>clean test</defaultGoal>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <source>${jdk.level}</source>
                <target>${jdk.level}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

3. Exemple de test avec ExtentReports

Maintenant, créez un test avec le nom test.java

public class TestBase {
    WebDriver driver;

    ExtentReports extent;
    ExtentTest logger;
    ExtentHtmlReporter htmlReporter;
    String htmlReportPath = "C:\\Screenshots/MyOwnReport.html"; //Path for the HTML report to be saved

    @BeforeTest
    public void setup(){
        htmlReporter = new ExtentHtmlReporter(htmlReportPath);
        extent = new ExtentReports();
        extent.attachReporter(htmlReporter);

        System.setProperty("webdriver.chrome.driver", "pathto/chromedriver.exe");
        driver = new ChromeDriver();
    
    }

    @Test
    public void test1(){
        driver.get("http://www.google.com/");
        logger.log(Status.INFO, "Opened site google.com");
        assertEquals(driver.getTitle()), "Google");
        logger.log(Status.PASS, "Google site loaded");
    }

    @AfterMethod
    public void getResult(ITestResult result) throws Exception {
        if (result.getStatus() == ITestResult.FAILURE)
        {
            logger.log(Status.FAIL, MarkupHelper.createLabel(result.getName() + " Test case FAILED due to below issues:", ExtentColor.RED));
            logger.fail(result.getThrowable());
        } 
        else if (result.getStatus() == ITestResult.SUCCESS)
        {
            logger.log(Status.PASS, MarkupHelper.createLabel(result.getName() + " Test Case PASSED", ExtentColor.GREEN));
        } 
        else if (result.getStatus() == ITestResult.SKIP)
        {
            logger.log(Status.SKIP, MarkupHelper.createLabel(result.getName() + " Test Case SKIPPED", ExtentColor.BLUE));
        }
     }

    @AfterTest
    public void testend() throws Exception {
        extent.flush();
    }

    @AfterClass
    public void tearDown() throws Exception {
        driver.close();
    }

Allure Reports

Cet exemple concerne l'implémentation d'Allure Reports dans Selenium à l'aide de TestNG, Java et Maven.

Configuration Maven

Dépôt

Ajouter le code suivant pour configurer le référentiel jcenter

<repository>
            <id>jcenter</id>
            <name>bintray</name>
            <url>http://jcenter.bintray.com</url>
</repository>

Dépendance

Ajouter les dépendances suivantes à votre pom.xml

<dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>1.5.4</version>
    </dependency>

Configuration du plug-in Surefire

<plugin>
        <groupId> org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.20</version>
        <configuration>
            <argLine>-javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
            </argLine>
            <properties>
                <property>
                    <name>listener</name>
                    <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
                </property>
            </properties>
            <suiteXmlFiles>testng.xml</suiteXmlFiles>
            <testFailureIgnore>false</testFailureIgnore>
        </configuration>
    </plugin>

Exemple de test pour le rapport Allure

Créer un exemple de test avec le nom test.java

public class test{
    WebDriver driver;
    WebDriverWait wait;

    @BeforeMethod
    public void setup() {
        System.setProperty("webdriver.chrome.driver", "path to/chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://www.google.com/");
        wait = new WebDriverWait(driver,50);
    }

    @Title("Title check")
    @Description("Checking the title of the loaded page.")
    @Test
    public void searchTest(){
        String title = driver.getTitle();
        LogUtil.log("Title Fetched: "+title);
        assertEquals(title,"Google");
        LogUtil.log("Test Passed. Expected: Google | Actual: "+title);
        System.out.println("Page Loaded");
    }

    @AfterMethod
    public void teardown(){
        driver.close();
    }
}

Dans la classe ci-dessus, nous avons utilisé la classe LogUtiil. Ceci est simplement fait pour enregistrer les étapes de notre test. Voici le code pour le même

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

    @Step("{0}")
    public static void log(final String message){
        //intentionally empty
    }
} 

Ici

@Titre ("") ajoutera le titre à votre test dans Allure Report

@Description ("") ajoutera la description à votre test

@Step ("") ajoutera une étape dans le rapport d'allure pour le test

A l'exécution, un fichier xml sera généré dans le dossier "target / allure-results /"

Rapport final avec Jenkins

Si vous utilisez Jenkins avec le plug-in Allure Report, Jenkins affichera automatiquement le rapport dans votre travail.

Rapport final sans Jenkins

Pour ceux qui n'ont pas de Jenkins, utilisez la ligne de commande suivante pour créer le rapport HTML. Allure CLI est une application Java disponible pour toutes les plates-formes. Vous devez installer manuellement Java 1.7+ avant d'utiliser Allure CLI.

Debian

Pour les référentiels basés sur Debian, nous fournissons un PPA afin que l'installation soit simple: Installez Allure CLI pour debian

$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update 
$ sudo apt-get install allure-commandline

Les distributions prises en charge sont les suivantes: Trusty et Precise. Après l'installation, vous aurez la commande allure disponible.

Mac OS

Vous pouvez installer la CLI Allure via Homebrew.

$ brew tap qatools/formulas 
$ brew install allure-commandline

Après l'installation, vous aurez la commande allure disponible.

Windows et autres Unix

  1. Téléchargez la dernière version sous forme d'archive zip à l' adresse https://github.com/allure-framework/allure-core/releases/latest .
  2. Décompressez l'archive dans le répertoire allure-commandline. Accédez au répertoire bin.
  3. Utilisez allure.bat pour Windows et allure pour d'autres plates-formes Unix.

Dans la ligne de commande / terminal, entrez simplement la syntaxe suivante et le rapport sera généré dans le dossier allure-report

$ allure generate directory-with-results/

entrer la description de l'image ici



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow