Поиск…


Вступление

В этом разделе рассматривается создание отчетов HTML для тестов селена. Для отчетности доступны различные типы плагинов, и широко используются Allure, ExtentReports и ReportNG.

ExtentReports

Этот пример охватывает реализацию ExtentReports в Selenium с использованием TestNG, Java и Maven.

ExtentReports доступны в двух версиях, сообщества и рекламы. Для удобства и демонстрации мы будем использовать версию сообщества.

1. Зависимость

Добавьте зависимость в файл Maven pom.xml для отчетов о степени.

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

2. Настройка плагинов

Настройте плагин maven surefire, как показано ниже в 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. Пример теста с ExtentReports

Теперь создайте тест с именем 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 Отчеты

Этот пример охватывает реализацию отчетов Allure в Selenium с использованием TestNG, Java и Maven.

Конфигурация Maven

вместилище

Добавьте следующий код для настройки репозитория jcenter

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

зависимость

Добавьте следующие зависимости к вашему 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>

Конфигурация плагина 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>

Пример теста для отчета Allure

Создайте образец теста с именем 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();
    }
}

В вышеприведенном классе мы использовали класс LogUtiil. Это просто делается для регистрации шагов в нашем тесте. Ниже приведен код для того же

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

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

Вот

@Title ("") добавит название к вашему тесту в Allure Report

@Description ("") добавит описание к вашему тесту

@Step ("") добавит шаг в отчете о соблазнении для теста

При выполнении xml-файл будет сгенерирован в папке «target / allure-results /»

Заключительный отчет с Дженкинсом

Если вы работаете в Jenkins с плагином Allure Report, то Jenkins автоматически отобразит отчет в вашей работе.

Заключительный отчет без Дженкинса

Для тех, кто не имеет Jenkins, используйте следующую команду для создания html-отчета. Allure CLI - это Java-приложение, поэтому оно доступно для всех платформ. Перед использованием Allure CLI вам необходимо вручную установить Java 1.7+.

Debian

Для репозиториев на базе Debian мы предоставляем PPA, поэтому установка проста: установите Allure CLI для debian

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

Поддерживаемые дистрибутивы: надежные и точные. После установки вы получите команду allure.

Mac OS

Вы можете установить Allure CLI через Homebrew.

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

После установки вы получите команду allure.

Windows и другие Unix

  1. Загрузите последнюю версию в виде zip-архива с https://github.com/allure-framework/allure-core/releases/latest .
  2. Распакуйте архив в каталог allure-commandline. Перейдите в каталог bin.
  3. Используйте allure.bat для Windows и allure для других платформ Unix.

В Commandline / Terminal теперь просто введите следующий синтаксис, и отчет будет сгенерирован в папку allure-report

$ allure generate directory-with-results/

введите описание изображения здесь



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow