selenium-webdriver
HTML-rapporter
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
- Ladda ner den senaste versionen som zip-arkiv från https://github.com/allure-framework/allure-core/releases/latest .
- Packa upp arkivet till allure-commandline-katalogen. Navigera till papperskatalogen.
- 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/