Szukaj…


Wprowadzenie

Ten temat obejmuje tworzenie raportów HTML dla testów selenu. Istnieje wiele rodzajów wtyczek dostępnych do raportowania, a szeroko stosowane są Allure, ExtentReports i ReportNG.

ExtentReports

Ten przykład obejmuje implementację ExtentReports w Selenium przy użyciu TestNG, Java i Maven.

ExtentReports są dostępne w dwóch wersjach, społecznościowej i komercyjnej. Dla ułatwienia i celów demonstracyjnych będziemy używać wersji społecznościowej.

1. Zależność

Dodaj zależność w pliku Maven pom.xml dla raportów zasięgu.

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

2. Skonfiguruj wtyczki

Skonfiguruj wtyczkę maven surefire jak poniżej w 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. Przykładowy test z ExtentReports

Teraz utwórz test o nazwie 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();
    }

Raporty Allure

Ten przykład obejmuje wdrożenie Allure Reports w Selenium przy użyciu TestNG, Java i Maven.

Konfiguracja Maven

Magazyn

Dodaj następujący kod, aby skonfigurować repozytorium jcenter

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

Zależność

Dodaj następujące zależności do pliku 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>

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

Przykładowy test raportu Allure

Utwórz przykładowy test o nazwie 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();
    }
}

W powyższej klasie wykorzystaliśmy klasę LogUtiil. Odbywa się to po prostu w celu zarejestrowania kroków w naszym teście. Poniżej znajduje się kod tego samego

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

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

Tutaj

@Title („”) doda tytuł do testu w raporcie Allure

@Description („”) doda opis do testu

@Step („”) doda krok do raportu uroków dla testu

Po uruchomieniu plik xml zostanie wygenerowany w folderze „target / allure-results /”

Raport końcowy z Jenkins

Jeśli pracujesz w Jenkins z zainstalowaną wtyczką Allure Report, Jenkins automatycznie wyrenderuje raport w twoim zadaniu.

Raport końcowy bez Jenkinsa

Dla tych, którzy nie mają Jenkinsa, użyj następującego wiersza polecenia, aby utworzyć raport HTML. Allure CLI to aplikacja Java, dzięki czemu jest dostępna na wszystkie platformy. Przed użyciem Allure CLI musisz ręcznie zainstalować Javę 1.7+.

Debian

W przypadku repozytoriów opartych na Debianie zapewniamy PPA, więc instalacja jest prosta: zainstaluj Allure CLI dla debiana

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

Obsługiwane dystrybucje to: Trusty i Precise. Po instalacji będziesz mieć dostęp do polecenia allure.

System operacyjny Mac

Możesz zainstalować Allure CLI przez Homebrew.

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

Po instalacji będziesz mieć dostęp do polecenia allure.

Windows i inny Unix

  1. Pobierz najnowszą wersję jako archiwum zip z https://github.com/allure-framework/allure-core/releases/latest .
  2. Rozpakuj archiwum do katalogu linii poleceń allure. Przejdź do katalogu bin.
  3. Użyj allure.bat dla Windows i allure dla innych platform Unix.

W wierszu poleceń / terminalu teraz wystarczy wprowadzić następującą składnię, a raport zostanie wygenerowany w folderze raportów allure

$ allure generate directory-with-results/

wprowadź opis zdjęcia tutaj



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow