Sök…


Introduktion

Detta ämne täcker skapandet av HTML-rapporter för selentest. Det finns olika typer av plugins som är tillgängliga för rapportering och de allmänt använda är Allure, ExtentReports och ReportNG.

ExtentReports

Detta exempel täcker implementeringen av ExtentReports i Selenium med TestNG, Java och Maven.

ExtentReports finns i två versioner, community och kommersiella. För att underlätta och demonstrera syftet kommer vi att använda communityversionen.

1. Beroende

Lägg till beroendet i din Maven pom.xml-fil för omfattningsrapporter.

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

2. Konfigurera plugins

Konfigurera den maven surefire-plugin som nedan i 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. Provtest med ExtentReports

Skapa nu ett test med namnet 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 rapporter

Detta exempel täcker implementeringen av Allure-rapporter i Selenium med TestNG, Java och Maven.

Maven-konfiguration

Repository

Lägg till följande kod för att konfigurera jcenterförvaret

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

Dependency

Lägg till följande beroenden till din 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-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>

Provtest för Allure Report

Skapa ett provtest med namnet 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();
    }
}

I ovanstående klass har vi använt LogUtiil-klassen. Detta görs helt enkelt för att logga in steg i vårt test. Nedan är koden för samma

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

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

Här

@Title ("") lägger till titeln i ditt test i Allure Report

@Description ("") lägger till beskrivningen i ditt test

@Step ("") lägger till ett steg i lockningsrapporten för testet

Vid körning kommer en xml-fil att genereras i mappen "target / allure-results /"

Slutrapport med Jenkins

Om du kör i Jenkins med Allure Report-plugin installerat kommer Jenkins automatiskt att rapportera i ditt jobb.

Slutrapport utan Jenkins

För de som inte har en Jenkins, använd följande kommandorad för att skapa html-rapporten. Allure CLI är en Java-applikation så det är tillgängligt för alla plattformar. Du måste installera Java 1.7+ manuellt innan du använder Allure CLI.

Debian

För Debian-baserade lagrar tillhandahåller vi en PPA så installationen är enkel: Installera Allure CLI för debian

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

Distribuerade stöd är: Trusty and Precise. Efter installationen har du lokkekommando tillgängligt.

Mac OS

Du kan installera Allure CLI via Homebrew.

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

Efter installationen har du lokkekommando tillgängligt.

Windows och andra Unix

  1. Ladda ner den senaste versionen som zip-arkiv från https://github.com/allure-framework/allure-core/releases/latest .
  2. Packa upp arkivet till allure-commandline-katalogen. Navigera till papperskatalogen.
  3. Använd allure.bat för Windows och locka till andra Unix-plattformar.

I Commandline / Terminal nu anger du bara följande syntax och rapport kommer att genereras i mappen för allure-rapport

$ allure generate directory-with-results/

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow