guide generate extent reports selenium webdriver
Com es generen informes d’extensió a Selenium WebDriver:
Selenium proporciona informes integrats mitjançant marcs com JUnit i TestNG.
Tot i que els informes integrats proporcionen informació sobre els passos que s’executen com a part del cas de prova, necessiten una major personalització per compartir-los amb tots els principals grups d'interès del projecte.
Extent Reports és un informe HTML personalitzable desenvolupat per Anshoo Arora que es pot integrar a Selenium WebDriver mitjançant marcs JUnit i TestNG.
Aquest tutorial us proporcionarà una guia completa pas a pas sobre com generar informes d’extensió a Selenium WebDrive amb codis d’exemple.
A continuació es mostra la instantània de l'informe incorporat proporcionat per TestNG Framework:
Els informes d’extensió ofereixen diversos avantatges en comparació amb els informes integrats que es generen a través de JUnit i TestNG, com ara la representació de gràfics circulars, la generació d’informes graduals, afegir captures de pantalla, etc., a cada pas de prova i una interfície d’usuari presentable que es pot compartir amb tots els grups d'interès del projecte.
A continuació es mostra la instantània d’un informe d’extensió de mostra a la representació de gràfics circulars
(Nota:Feu clic a qualsevol imatge per obtenir una vista ampliada)
Què aprendreu:
- Avantatges d’utilitzar els informes d’extensió
- Ús d’informes d’extensió a Selenium Webdriver
- Codi de mostra per als informes d’extensió
- Informe de resum de la prova
- Informe gràfic de gràfics circulars
- Captura de la captura de pantalla als informes d’extensió
- Conclusió
- Lectura recomanada
Avantatges d’utilitzar els informes d’extensió
Hi ha diversos avantatges dels informes d’extensió i alguns d’ells es detallen a continuació.
- Informe HTML personalitzable amb representació gradual i gràfica circular.
- Mostra el temps necessari per a l'execució de casos de prova a l'informe.
- Cada pas de prova es pot associar a una captura de pantalla.
- Es poden fer un seguiment fàcil de diverses proves de casos múltiples dins d’una sola suite.
- Es pot integrar fàcilment amb els marcs TestNG i JUnit.
Ús d’informes d’extensió a Selenium Webdriver
Els informes d’extensió contenen dues classes principals que s’utilitzen amb freqüència.
- Classe ExtentReports
- Classe ExtentTest
Sintaxi:
ExtentReports reports = new ExtentReports ('Camí del directori per emmagatzemar el fitxer HTML resultant', veritable / fals);
preguntes i respostes de l'entrevista core java per a usuaris experimentats
Test ExtentTest = reports.startTest ('Nom de prova');
La classe Informes d’extensió s’utilitza per generar un informe HTML al camí especificat per l’usuari. El senyalador booleà indica si s’ha de sobreescriure l’informe existent o s’ha de crear un informe nou. El valor 'true' és el valor predeterminat, el que significa que se sobreescriuran totes les dades existents.
La classe de prova d’extensió s’utilitza per registrar els passos de la prova a l’informe HTML generat.
Les classes anteriors es poden utilitzar amb els mètodes integrats d'ús freqüent que s'indiquen a continuació.
- startTest
- endTest
- Registre
- rubor
Els mètodes startTest i endTest s’utilitzen per executar precondicions i post-condicions d’un cas de prova, mentre que el mètode de registre s’utilitza per registrar l’estat de cada pas de prova a l’informe HTML resultant. El mètode Flush s’utilitza per esborrar qualsevol dada anterior de l’informe i crear un informe nou.
L'estat de prova pot ser qualsevol dels valors següents:
- PASSAR
- FALLAR
- OMETRE
- INFO
Sintaxi:
reports.endTest ();
test.log (LogStatus.PASS, 'Prova superada');
test.log (LogStatus.FAIL, 'Prova fallida');
test.log (LogStatus.SKIP, 'Prova omesa');
test.log (LogStatus.INFO, 'Informació de prova');
El mètode de registre inclou dos paràmetres, el primer és l'estat de la prova i el segon és el missatge que s'ha d'imprimir a l'informe resultant.
Codi de mostra per als informes d’extensió
A continuació, esmentem la seqüència de passos per utilitzar els informes d’extensió a Selenium Webdriver a Junit.
Pas 1:
Els informes d’extensió es poden utilitzar directament a selenium WebDriver important el fitxer JAR - extentreports-java-2.41.2.jar que es pot descarregat aquí .
Un cop descarregat el fitxer ZIP, extreu el contingut del fitxer ZIP a una carpeta.
Pas 2:
Afegiu els fitxers jar presents al fitxer ZIP al camí de construcció del projecte mitjançant l'opció Construeix camí -> Configura el camí de construcció.
ordena sort a Linux amb exemples
Pas 3:
Creeu una nova classe JAVA amb el codi següent per als informes d’extensió.
package com.objectrepository.demo; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import com.relevantcodes.extentreports.ExtentReports; import com.relevantcodes.extentreports.ExtentTest; import com.relevantcodes.extentreports.LogStatus; public class ExtentDemo { static ExtentTest test; static ExtentReports report; @BeforeClass public static void startTest() { report = new ExtentReports(System.getProperty('user.dir')+'\ExtentReportResults.html'); test = report.startTest('ExtentDemo'); } @Test public void extentReportsDemo() { System.setProperty('webdriver.chrome.driver', 'D:\SubmittalExchange_TFS\QA\Automationrdparty\chrome\chromedriver.exe'); WebDriver driver = new ChromeDriver(); driver.get('https://www.google.co.in'); if(driver.getTitle().equals('Google')) { test.log(LogStatus.PASS, 'Navigated to the specified URL'); } else { test.log(LogStatus.FAIL, 'Test Failed'); } } @AfterClass public static void endTest() { report.endTest(test); report.flush(); } }
Explicació del codi
@BeforeClass:
El codi anterior mostra l’ús dels informes d’extensió. L’execució de casos de prova comença amb el mètode startTest, que implica la inicialització de l’objecte Extent Reports. El paràmetre transmès a l'objecte Extent Reports pot ser qualsevol ruta vàlida definida per l'usuari.
Per la simplicitat, l'exemple utilitza el directori del projecte actual per generar l'informe HTML resultant. La següent sentència implica la inicialització de l'objecte ExtentTest amb el valor retornat del mètode startTest.
@Prova:
La classe de prova inclou els passos següents:
- Obriu el navegador Chrome amb aquesta URL https://www.google.com
- Valideu el títol de la pàgina amb el valor esperat un cop oberta la pàgina.
- Registreu l'estat del cas de prova com PASS / FAIL mitjançant el mètode de registre dels informes d'extensió.
@Després de classe:
Després de la classe, s'inclou el codi per executar les condicions posteriors del cas de prova, com ara acabar la prova mitjançant el mètode endTest i eliminar l'informe. Tingueu en compte que l'informe no es generarà si no s'utilitza el mètode flush ().
T és informe resum
Informe gràfic de gràfics circulars
Captura de la captura de pantalla als informes d’extensió
La captura de pantalla juntament amb l'execució de la prova ajudaran un provador a depurar l'script de prova si hi ha problemes durant l'execució de la prova. No obstant això, és aconsellable captura de pantalla només si falla un pas de prova, ja que les imatges consumiran més memòria si es capturen a cada pas de prova.
com fer una matriu de cadenes
Es poden capturar captures de pantalla per a cada pas fallit mitjançant el codi següent.
test.log(LogStatus.FAIL,test.addScreenCapture(capture(driver))+ 'Test Failed'); public static String capture(WebDriver driver) throws IOException { File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); File Dest = new File('src/../ErrImages/' + System.currentTimeMillis() + '.png'); String errflpath = Dest.getAbsolutePath(); FileUtils.copyFile(scrFile, Dest); return errflpath; }
Explicació del codi
Mètode de captura:
# 1) El mètode getScreenShotAs () s’utilitza per capturar la captura de pantalla de la instància actual de WebDriver i emmagatzemar-la en diversos formularis de sortida.
Arxiu scrFile = (controlador ((TakesScreenshot)) .getScreenshotAs (OutputType.FILE);
# 2) El mètode getScreenShotAs retorna un objecte de fitxer que cal emmagatzemar en una variable de fitxer. Tingueu en compte que és obligatori emetre la instància del controlador web a Captura de pantalla si voleu utilitzar el mètode.
# 3) Fitxer Dest = fitxer nou (“src /../ ErrImages /” + System.currentTimeMillis () + “.png”);
# 4) La declaració anterior crea una carpeta anomenada 'ErrImages' dins de la carpeta 'src' i emmagatzema el nom del fitxer com a hora actual del sistema.
# 5) String errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
returnerrflpath;
# 6) Les instruccions anteriors copien les imatges d'error a la carpeta de destinació.
Mètode de registre:
El mètode de registre utilitza el mètode incorporat, addScreenCapture de la classe Extent Test per obtenir la captura de pantalla i afegir-la a l'informe d'extensió.
test.log (LogStatus.FAIL, test.addScreenCapture (captura (controlador)) + 'Prova fallida');
El missatge registrat al mètode de registre pot incloure missatges detallats que incloguin els resultats esperats i reals per a finalitats de depuració.
Sortida:
Conclusió
Els informes d’extensió són una de les millors maneres de generar informes HTML personalitzables amb una agradable interfície d’usuari al controlador web Selenium.
És una biblioteca de codi obert que es pot configurar fàcilment amb Selenium, cosa que la converteix en la millor opció per als provadors d'automatització.
Espero que ara tingueu una idea clara sobre els informes d’extensió.
Lectura recomanada
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Introducció a Selenium WebDriver - Tutorial Selenium # 8
- Implementació del nostre primer script WebDriver - Selenium WebDriver Tutorial # 10
- Preguntes més freqüents sobre el seleni
- Com gestionar les alertes / finestres emergents a Selenium WebDriver - Selenium Tutorial # 16
- Espera implícita i explícita a Selenium WebDriver (tipus d'espera de seleni)
- Com executar Selenium WebDriver en diferents navegadors populars
- Configuració i instal·lació senceres de WebDriver amb Eclipse - Tutorial Selenium # 9