Zoeken…


Invoering

Dit onderwerp behandelt het maken van HTML-rapporten voor seleniumtests. Er zijn verschillende soorten plug-ins beschikbaar voor rapportage en de meest gebruikte zijn Allure, ExtentReports en ReportNG.

ExtentReports

Dit voorbeeld behandelt de implementatie van ExtentReports in Selenium met behulp van TestNG, Java en Maven.

ExtentReports zijn beschikbaar in twee versies, community en commercial. Voor het gemak en de demonstratie zullen we de community-versie gebruiken.

1. Afhankelijkheid

Voeg de afhankelijkheid toe aan uw Maven pom.xml-bestand voor omvangrapporten.

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

2. Configureer plug-ins

Configureer de maven surefire plug-in zoals hieronder 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. Voorbeeldtest met ExtentReports

Maak nu een test met de naam 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-rapporten

Dit voorbeeld behandelt de implementatie van Allure Reports in Selenium met behulp van TestNG, Java en Maven.

Maven-configuratie

bewaarplaats

Voeg de volgende code toe om de jcenter-repository te configureren

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

Afhankelijkheid

Voeg de volgende afhankelijkheden toe aan uw 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 Plug-in configuratie

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

Voorbeeldtest voor Allure Report

Maak een voorbeeldtest met de naam 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 de bovenstaande klasse hebben we de LogUtiil-klasse gebruikt. Dit wordt eenvoudig gedaan om Stappen in onze test te loggen. Hieronder staat de code voor hetzelfde

LogUtil.java

public final class LogUtil {

    private LogUtil() {
    }

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

Hier

@Title ("") voegt de titel toe aan uw test in Allure Report

@Description ("") voegt de beschrijving toe aan uw test

@Step ("") voegt een stap toe aan het allure-rapport voor de test

Bij uitvoering wordt een xml-bestand gegenereerd in de map "target / allure-results /"

Eindrapport met Jenkins

Als u in Jenkins draait met de Allure Report-plug-in geïnstalleerd, zal Jenkins het rapport automatisch in uw taak weergeven.

Eindrapport zonder Jenkins

Voor degenen die geen Jenkins hebben, gebruikt u de volgende opdrachtregel om het HTML-rapport te maken. Allure CLI is een Java-applicatie en is dus beschikbaar voor alle platforms. U moet Java 1.7+ handmatig installeren voordat u Allure CLI gebruikt.

Debian

Voor op Debian gebaseerde repositories bieden we een PPA zodat de installatie eenvoudig is: Allure CLI installeren voor debian

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

Ondersteunde distributies zijn: Trusty en Precise. Na de installatie heb je het allure-commando beschikbaar.

Mac OS

U kunt Allure CLI installeren via Homebrew.

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

Na de installatie heb je het allure-commando beschikbaar.

Windows en andere Unix

  1. Download de nieuwste versie als zip-archief van https://github.com/allure-framework/allure-core/releases/latest .
  2. Pak het archief uit naar de allure-opdrachtregelmap. Navigeer naar bin directory.
  3. Gebruik allure.bat voor Windows en allure voor andere Unix-platforms.

Voer nu in de opdrachtregel / terminal de volgende syntax in en het rapport wordt gegenereerd in de map allure-report

$ allure generate directory-with-results/

voer hier de afbeeldingsbeschrijving in



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow