selenium-webdriver
HTML-rapporten
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
- Download de nieuwste versie als zip-archief van https://github.com/allure-framework/allure-core/releases/latest .
- Pak het archief uit naar de allure-opdrachtregelmap. Navigeer naar bin directory.
- 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/