Suche…


Einführung

Dieses Thema behandelt die Erstellung von HTML-Berichten für Selentests. Es gibt verschiedene Arten von Plugins für die Berichterstellung. Allure, ExtentReports und ReportNG werden häufig verwendet.

ExtentReports

In diesem Beispiel wird die Implementierung von ExtentReports in Selenium mit TestNG, Java und Maven beschrieben.

ExtentReports sind in zwei Versionen verfügbar: Community und Commercial. Zur Vereinfachung und zu Demonstrationszwecken verwenden wir die Community-Version.

1. Abhängigkeit

Fügen Sie die Abhängigkeit in Ihrer Maven-Datei "pom.xml" für Bereichsberichte hinzu.

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

2. Plugins konfigurieren

Konfigurieren Sie das maven surefire Plugin wie folgt 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. Beispieltest mit ExtentReports

Erstellen Sie nun einen Test mit dem Namen 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

In diesem Beispiel wird die Implementierung von Allure Reports in Selenium mit TestNG, Java und Maven beschrieben.

Maven-Konfiguration

Repository

Fügen Sie folgenden Code hinzu, um das jcenter-Repository zu konfigurieren

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

Abhängigkeit

Fügen Sie Ihrer pom.xml folgende Abhängigkeiten hinzu

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

Surefire-Plugin-Konfiguration

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

Mustertest für Allure Report

Erstellen Sie einen Beispieltest mit dem Namen 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();
    }
}

In der obigen Klasse haben wir die Klasse LogUtiil verwendet. Dies geschieht einfach, um die Schritte in unserem Test zu protokollieren. Unten ist der Code für das gleiche

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

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

Hier

@Title ("") fügt den Titel zu Ihrem Test in Allure Report hinzu

@Description ("") fügt die Beschreibung Ihrem Test hinzu

@Step ("") fügt für den Test einen Schritt im Verlockungsbericht hinzu

Bei der Ausführung wird eine XML-Datei im Ordner "target / allure-results /" erzeugt.

Abschlussbericht mit Jenkins

Wenn Sie Jenkins mit installiertem Allure Report-Plugin ausführen, rendert Jenkins den Bericht automatisch in Ihrem Job.

Abschlussbericht ohne Jenkins

Für diejenigen, die keine Jenkins haben, verwenden Sie die folgende Befehlszeile, um den HTML-Bericht zu erstellen. Allure CLI ist eine Java-Anwendung, die für alle Plattformen verfügbar ist. Sie müssen Java 1.7+ manuell installieren, bevor Sie Allure CLI verwenden.

Debian

Für Debian-basierte Repositorys stellen wir eine PPA bereit, sodass die Installation unkompliziert ist: Installieren Sie Allure CLI für Debian

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

Unterstützte Distributionen sind: vertrauenswürdig und präzise. Nach der Installation steht Ihnen der Allure-Befehl zur Verfügung.

Mac OS

Sie können Allure CLI über Homebrew installieren.

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

Nach der Installation steht Ihnen der Allure-Befehl zur Verfügung.

Windows und andere Unix

  1. Laden Sie die neueste Version als ZIP-Archiv von https://github.com/allure-framework/allure-core/releases/latest herunter.
  2. Entpacken Sie das Archiv in das Allure-Commandline-Verzeichnis. Navigieren Sie zum bin-Verzeichnis.
  3. Verwenden Sie allure.bat für Windows und allure für andere Unix-Plattformen.

Geben Sie in der Befehlszeile / im Terminal einfach die folgende Syntax ein und der Bericht wird im Allure-Report-Ordner generiert

$ allure generate directory-with-results/

Geben Sie hier die Bildbeschreibung ein



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow