Ricerca…


introduzione

Questo argomento riguarda la creazione di report HTML per i test del selenio. Esistono vari tipi di plug-in disponibili per la creazione di report e quelli ampiamente utilizzati sono Allure, ExtentReports e ReportNG.

ExtentReports

Questo esempio copre l'implementazione di ExtentReports in Selenium utilizzando TestNG, Java e Maven.

ExtentReports sono disponibili in due versioni, community e commerciale. Per motivi di facilità e di dimostrazione, utilizzeremo la versione della community.

1. Dipendenza

Aggiungi la dipendenza nel tuo file Maven pom.xml per i rapporti di estensione.

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

2. Configura i plugin

Configura il plugin maven surefire come sotto in 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. Test di esempio con ExtentReports

Ora crea un test con nome 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

Questo esempio copre l'implementazione di Allure Reports in Selenium utilizzando TestNG, Java e Maven.

Configurazione Maven

deposito

Aggiungi il seguente codice per configurare il repository jcenter

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

Dipendenza

Aggiungi le seguenti dipendenze al tuo 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>

Configurazione 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>

Prova di esempio per il rapporto Allure

Creare un test di esempio con nome 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();
    }
}

Nella classe precedente abbiamo utilizzato la classe LogUtiil. Questo è fatto semplicemente per registrare i passaggi nel nostro test. Di seguito è riportato il codice per lo stesso

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

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

Qui

@Title ("") aggiungerà il titolo al test in Allure Report

@Description ("") aggiungerà la descrizione al test

@Step ("") aggiungerà un passaggio nel report allure per il test

Durante l'esecuzione verrà generato un file xml nella cartella "target / allure-results /"

Relazione finale con Jenkins

Se stai usando Jenkins con il plugin Allure Report installato, allora Jenkins renderà automaticamente il report nel tuo lavoro.

Rapporto finale senza Jenkins

Per coloro che non hanno un Jenkins, usa la seguente linea di comando per creare il rapporto html. Allure CLI è un'applicazione Java quindi è disponibile per tutte le piattaforme. È necessario installare manualmente Java 1.7+ prima di utilizzare Allure CLI.

Debian

Per gli archivi basati su Debian forniamo un PPA quindi l'installazione è semplice: Installa Allure CLI per debian

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

Le distribuzioni supportate sono: Trusty e Precise. Dopo l'installazione avrai il comando allure disponibile.

Mac OS

È possibile installare Allure CLI tramite Homebrew.

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

Dopo l'installazione avrai il comando allure disponibile.

Windows e altri Unix

  1. Scarica l'ultima versione come archivio zip da https://github.com/allure-framework/allure-core/releases/latest .
  2. Spacchettare l'archivio nella directory allure-commandline. Passare alla directory bin.
  3. Usa allure.bat per Windows e allure per altre piattaforme Unix.

Nella Commandline / Terminale ora inserisci semplicemente la seguente sintassi e il rapporto verrà generato nella cartella allure-report

$ allure generate directory-with-results/

inserisci la descrizione dell'immagine qui



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow