selenium-webdriver
HTML-Berichte
Suche…
Einführung
Dieses Thema behandelt die Erstellung von HTML-Berichten für Selentests. Es gibt verschiedene Arten von Plugins für die Berichterstellung. Allure, ExtentReports und ReportNG werden häufig verwendet.
ExtentReports
In diesem Beispiel wird die Implementierung von ExtentReports in Selenium mit TestNG, Java und Maven beschrieben.
ExtentReports sind in zwei Versionen verfügbar: Community und Commercial. Zur Vereinfachung und zu Demonstrationszwecken verwenden wir die Community-Version.
1. Abhängigkeit
Fügen Sie die Abhängigkeit in Ihrer Maven-Datei "pom.xml" für Bereichsberichte hinzu.
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.0.6</version>
</dependency>
2. Plugins konfigurieren
Konfigurieren Sie das maven surefire Plugin wie folgt 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. Beispieltest mit ExtentReports
Erstellen Sie nun einen Test mit dem Namen 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 Reports
In diesem Beispiel wird die Implementierung von Allure Reports in Selenium mit TestNG, Java und Maven beschrieben.
Maven-Konfiguration
Repository
Fügen Sie folgenden Code hinzu, um das jcenter-Repository zu konfigurieren
<repository>
<id>jcenter</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
Abhängigkeit
Fügen Sie Ihrer pom.xml folgende Abhängigkeiten hinzu
<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>
Mustertest für Allure Report
Erstellen Sie einen Beispieltest mit dem Namen 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 der obigen Klasse haben wir die Klasse LogUtiil verwendet. Dies geschieht einfach, um die Schritte in unserem Test zu protokollieren. Unten ist der Code für das gleiche
LogUtil.java
public final class LogUtil {
private LogUtil() {
}
@Step("{0}")
public static void log(final String message){
//intentionally empty
}
}
Hier
@Title ("") fügt den Titel zu Ihrem Test in Allure Report hinzu
@Description ("") fügt die Beschreibung Ihrem Test hinzu
@Step ("") fügt für den Test einen Schritt im Verlockungsbericht hinzu
Bei der Ausführung wird eine XML-Datei im Ordner "target / allure-results /" erzeugt.
Abschlussbericht mit Jenkins
Wenn Sie Jenkins mit installiertem Allure Report-Plugin ausführen, rendert Jenkins den Bericht automatisch in Ihrem Job.
Abschlussbericht ohne Jenkins
Für diejenigen, die keine Jenkins haben, verwenden Sie die folgende Befehlszeile, um den HTML-Bericht zu erstellen. Allure CLI ist eine Java-Anwendung, die für alle Plattformen verfügbar ist. Sie müssen Java 1.7+ manuell installieren, bevor Sie Allure CLI verwenden.
Debian
Für Debian-basierte Repositorys stellen wir eine PPA bereit, sodass die Installation unkompliziert ist: Installieren Sie Allure CLI für Debian
$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update
$ sudo apt-get install allure-commandline
Unterstützte Distributionen sind: vertrauenswürdig und präzise. Nach der Installation steht Ihnen der Allure-Befehl zur Verfügung.
Mac OS
Sie können Allure CLI über Homebrew installieren.
$ brew tap qatools/formulas
$ brew install allure-commandline
Nach der Installation steht Ihnen der Allure-Befehl zur Verfügung.
Windows und andere Unix
- Laden Sie die neueste Version als ZIP-Archiv von https://github.com/allure-framework/allure-core/releases/latest herunter.
- Entpacken Sie das Archiv in das Allure-Commandline-Verzeichnis. Navigieren Sie zum bin-Verzeichnis.
- Verwenden Sie allure.bat für Windows und allure für andere Unix-Plattformen.
Geben Sie in der Befehlszeile / im Terminal einfach die folgende Syntax ein und der Bericht wird im Allure-Report-Ordner generiert
$ allure generate directory-with-results/