selenium-webdriver
Rapporti HTML
Ricerca…
introduzione
Questo argomento riguarda la creazione di report HTML per i test del selenio. Esistono vari tipi di plug-in disponibili per la creazione di report e quelli ampiamente utilizzati sono Allure, ExtentReports e ReportNG.
ExtentReports
Questo esempio copre l'implementazione di ExtentReports in Selenium utilizzando TestNG, Java e Maven.
ExtentReports sono disponibili in due versioni, community e commerciale. Per motivi di facilità e di dimostrazione, utilizzeremo la versione della community.
1. Dipendenza
Aggiungi la dipendenza nel tuo file Maven pom.xml per i rapporti di estensione.
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>3.0.6</version>
</dependency>
2. Configura i plugin
Configura il plugin maven surefire come sotto 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. Test di esempio con ExtentReports
Ora crea un test con nome 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
Questo esempio copre l'implementazione di Allure Reports in Selenium utilizzando TestNG, Java e Maven.
Configurazione Maven
deposito
Aggiungi il seguente codice per configurare il repository jcenter
<repository>
<id>jcenter</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
Dipendenza
Aggiungi le seguenti dipendenze al tuo 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>
Configurazione plug-in 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>
Prova di esempio per il rapporto Allure
Creare un test di esempio con nome 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();
}
}
Nella classe precedente abbiamo utilizzato la classe LogUtiil. Questo è fatto semplicemente per registrare i passaggi nel nostro test. Di seguito è riportato il codice per lo stesso
LogUtil.java
public final class LogUtil {
private LogUtil() {
}
@Step("{0}")
public static void log(final String message){
//intentionally empty
}
}
Qui
@Title ("") aggiungerà il titolo al test in Allure Report
@Description ("") aggiungerà la descrizione al test
@Step ("") aggiungerà un passaggio nel report allure per il test
Durante l'esecuzione verrà generato un file xml nella cartella "target / allure-results /"
Relazione finale con Jenkins
Se stai usando Jenkins con il plugin Allure Report installato, allora Jenkins renderà automaticamente il report nel tuo lavoro.
Rapporto finale senza Jenkins
Per coloro che non hanno un Jenkins, usa la seguente linea di comando per creare il rapporto html. Allure CLI è un'applicazione Java quindi è disponibile per tutte le piattaforme. È necessario installare manualmente Java 1.7+ prima di utilizzare Allure CLI.
Debian
Per gli archivi basati su Debian forniamo un PPA quindi l'installazione è semplice: Installa Allure CLI per debian
$ sudo apt-add-repository ppa:yandex-qatools/allure-framework
$ sudo apt-get update
$ sudo apt-get install allure-commandline
Le distribuzioni supportate sono: Trusty e Precise. Dopo l'installazione avrai il comando allure disponibile.
Mac OS
È possibile installare Allure CLI tramite Homebrew.
$ brew tap qatools/formulas
$ brew install allure-commandline
Dopo l'installazione avrai il comando allure disponibile.
Windows e altri Unix
- Scarica l'ultima versione come archivio zip da https://github.com/allure-framework/allure-core/releases/latest .
- Spacchettare l'archivio nella directory allure-commandline. Passare alla directory bin.
- Usa allure.bat per Windows e allure per altre piattaforme Unix.
Nella Commandline / Terminale ora inserisci semplicemente la seguente sintassi e il rapporto verrà generato nella cartella allure-report
$ allure generate directory-with-results/