selenium-webdriver
Raporty HTML
Szukaj…
Wprowadzenie
Ten temat obejmuje tworzenie raportów HTML dla testów selenu. Istnieje wiele rodzajów wtyczek dostępnych do raportowania, a szeroko stosowane są Allure, ExtentReports i ReportNG.
ExtentReports
Ten przykład obejmuje implementację ExtentReports w Selenium przy użyciu TestNG, Java i Maven.
ExtentReports są dostępne w dwóch wersjach, społecznościowej i komercyjnej. Dla ułatwienia i celów demonstracyjnych będziemy używać wersji społecznościowej.
1. Zależność
Dodaj zależność w pliku Maven pom.xml dla raportów zasięgu.
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.0.6</version>
</dependency>
2. Skonfiguruj wtyczki
Skonfiguruj wtyczkę maven surefire jak poniżej w 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. Przykładowy test z ExtentReports
Teraz utwórz test o nazwie 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();
}
Raporty Allure
Ten przykład obejmuje wdrożenie Allure Reports w Selenium przy użyciu TestNG, Java i Maven.
Konfiguracja Maven
Magazyn
Dodaj następujący kod, aby skonfigurować repozytorium jcenter
<repository>
<id>jcenter</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
Zależność
Dodaj następujące zależności do pliku 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>
Konfiguracja wtyczki 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>
Przykładowy test raportu Allure
Utwórz przykładowy test o nazwie 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();
}
}
W powyższej klasie wykorzystaliśmy klasę LogUtiil. Odbywa się to po prostu w celu zarejestrowania kroków w naszym teście. Poniżej znajduje się kod tego samego
LogUtil.java
public final class LogUtil {
private LogUtil() {
}
@Step("{0}")
public static void log(final String message){
//intentionally empty
}
}
Tutaj
@Title („”) doda tytuł do testu w raporcie Allure
@Description („”) doda opis do testu
@Step („”) doda krok do raportu uroków dla testu
Po uruchomieniu plik xml zostanie wygenerowany w folderze „target / allure-results /”
Raport końcowy z Jenkins
Jeśli pracujesz w Jenkins z zainstalowaną wtyczką Allure Report, Jenkins automatycznie wyrenderuje raport w twoim zadaniu.
Raport końcowy bez Jenkinsa
Dla tych, którzy nie mają Jenkinsa, użyj następującego wiersza polecenia, aby utworzyć raport HTML. Allure CLI to aplikacja Java, dzięki czemu jest dostępna na wszystkie platformy. Przed użyciem Allure CLI musisz ręcznie zainstalować Javę 1.7+.
Debian
W przypadku repozytoriów opartych na Debianie zapewniamy PPA, więc instalacja jest prosta: zainstaluj Allure CLI dla debiana
$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update
$ sudo apt-get install allure-commandline
Obsługiwane dystrybucje to: Trusty i Precise. Po instalacji będziesz mieć dostęp do polecenia allure.
System operacyjny Mac
Możesz zainstalować Allure CLI przez Homebrew.
$ brew tap qatools/formulas
$ brew install allure-commandline
Po instalacji będziesz mieć dostęp do polecenia allure.
Windows i inny Unix
- Pobierz najnowszą wersję jako archiwum zip z https://github.com/allure-framework/allure-core/releases/latest .
- Rozpakuj archiwum do katalogu linii poleceń allure. Przejdź do katalogu bin.
- Użyj allure.bat dla Windows i allure dla innych platform Unix.
W wierszu poleceń / terminalu teraz wystarczy wprowadzić następującą składnię, a raport zostanie wygenerowany w folderze raportów allure
$ allure generate directory-with-results/