guide generate extent reports selenium webdriver
Come generare report di estensione in Selenium WebDriver:
Selenium fornisce report integrati utilizzando framework come JUnit e TestNG.
Sebbene i report incorporati forniscano informazioni sui passaggi eseguiti come parte del test case, richiedono una maggiore personalizzazione per essere condivisi con tutti i principali stakeholder del progetto.
Extent Reports è un report HTML personalizzabile sviluppato da Anshoo Arora che può essere integrato in Selenium WebDriver utilizzando i framework JUnit e TestNG.
Questo tutorial ti fornirà una guida passo passo completa su come generare report di estensione in Selenium WebDrive con codici di esempio.
Di seguito è riportata l'istantanea del report integrato fornito dal framework TestNG:
I report di estensione offrono diversi vantaggi rispetto ai report incorporati generati tramite JUnit e TestNG come la rappresentazione del grafico a torta, la generazione di report stepwise di test, l'aggiunta di screenshot ecc., In ogni fase del test e un'interfaccia utente presentabile che può essere condivisa con tutti gli stakeholder del progetto.
Di seguito è riportata l'istantanea di un report di estensione di esempio in rappresentazione grafico a torta
(Nota:Fare clic su qualsiasi immagine per ingrandirla)
Cosa imparerai:
- Vantaggi dell'utilizzo di Extent Reports
- Utilizzo dei rapporti di estensione in Selenium Webdriver
- Codice di esempio per Extent Reports
- Rapporto di riepilogo del test
- Rapporto grafico del grafico a torta
- Cattura screenshot nei rapporti di estensione
- Conclusione
- Lettura consigliata
Vantaggi dell'utilizzo di Extent Reports
Ci sono diversi vantaggi di Extent Reports e alcuni di essi sono discussi di seguito.
- Report HTML personalizzabile con rappresentazione graduale e grafico a torta.
- Visualizza il tempo impiegato per l'esecuzione dello scenario di test all'interno del report.
- Ogni fase del test può essere associata a uno screenshot.
- È possibile monitorare facilmente più esecuzioni di test case all'interno di una singola suite.
- Può essere facilmente integrato con i framework TestNG e JUnit.
Utilizzo dei rapporti di estensione in Selenium Webdriver
I report di estensione contengono due classi principali utilizzate di frequente.
- Classe ExtentReports
- Classe ExtentTest
Sintassi:
Report ExtentReports = nuovo ExtentReports ('Percorso della directory in cui memorizzare il file HTML risultante', vero / falso);
domande di intervista per test di automazione per esperti
ExtentTest test = reports.startTest ('TestName');
La classe Extent Reports viene utilizzata per generare un report HTML sul percorso specificato dall'utente. Il flag booleano indica se il report esistente deve essere sovrascritto o se deve essere creato un nuovo report. Il valore 'true' è il valore predefinito, il che significa che tutti i dati esistenti verranno sovrascritti.
La classe Extent Test viene utilizzata per registrare i passaggi del test nel report HTML generato.
Le classi precedenti possono essere utilizzate con i metodi incorporati utilizzati di frequente che sono indicati di seguito.
come rippare dvd gratuitamente
- startTest
- endTest
- Log
- sciacquone
I metodi startTest e endTest vengono utilizzati per eseguire le precondizioni e le post-condizioni di un test case, mentre il metodo log viene utilizzato per registrare lo stato di ogni fase del test sul report HTML risultante. Il metodo Flush viene utilizzato per cancellare tutti i dati precedenti sul report e creare un nuovo report.
Lo stato del test può essere uno dei seguenti valori:
- PASSAGGIO
- FALLIRE
- SALTA
- INFORMAZIONI
Sintassi:
reports.endTest ();
test.log (LogStatus.PASS, 'Test superato');
test.log (LogStatus.FAIL, 'Test Failed');
test.log (LogStatus.SKIP, 'Test saltato');
test.log (LogStatus.INFO, 'Test Info');
Il metodo di registro accetta due parametri, il primo parametro è lo stato del test e il secondo parametro è il messaggio da stampare sul report risultante.
Codice di esempio per Extent Reports
Di seguito viene indicata la sequenza di passaggi per utilizzare Extent Reports in Selenium Webdriver in Junit.
Passo 1:
Extent Reports può essere utilizzato direttamente in selenium WebDriver importando il file JAR - extentreports-java-2.41.2.jar che può essere scaricabile qui .
Una volta scaricato il file ZIP, estrai il contenuto del file ZIP in una cartella.
Passo 2:
Aggiungi i file jar presenti nel file ZIP al percorso di compilazione del progetto utilizzando l'opzione Build Path -> Configura Build Path.
Passaggio 3:
Crea una nuova classe JAVA con il codice seguente per Extent Reports.
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(); } }
Spiegazione del codice
@Prima della lezione:
Il codice precedente dimostra l'utilizzo di Extent Reports. L'esecuzione dello scenario di test inizia con il metodo startTest, che prevede l'inizializzazione dell'oggetto Extent Reports. Il parametro passato all'oggetto Extent Reports può essere qualsiasi percorso definito dall'utente valido.
Per semplicità, l'esempio utilizza la directory del progetto corrente per generare il report HTML risultante. L'istruzione successiva implica l'inizializzazione dell'oggetto ExtentTest con il valore di ritorno del metodo startTest.
@Test:
La classe di test include i seguenti passaggi:
- Apri il browser Chrome con questo URL https://www.google.com
- Convalida il titolo della pagina con il valore previsto una volta aperta la pagina.
- Registra lo stato del test case come SUPERATO / NON RIUSCITO utilizzando il metodo di registrazione di Extent Reports.
@Dopo la lezione:
After class include il codice per eseguire le postcondizioni del test case, come terminare il test utilizzando il metodo endTest e svuotare il report. Si noti che il report non verrà generato se il metodo flush () non viene utilizzato.
T è il rapporto di riepilogo
Rapporto grafico del grafico a torta
Cattura screenshot nei rapporti di estensione
Screen Capture insieme all'esecuzione del test aiuterà un tester nel debug dello script di test se ci sono problemi riscontrati durante l'esecuzione del test. Tuttavia, è consigliabile cattura screenshot solo se una fase del test fallisce poiché le immagini consumeranno più memoria se catturate in ogni fase del test.
È possibile acquisire schermate per ogni passaggio non riuscito utilizzando il codice riportato di seguito.
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; }
Spiegazione del codice
Metodo di acquisizione:
# 1) Il metodo getScreenShotAs () viene utilizzato per acquisire lo screenshot dell'istanza WebDriver corrente e memorizzarlo in vari moduli di output.
File scrFile = ((TakesScreenshot) driver) .getScreenshotAs (OutputType.FILE);
come aprire file torrent windows 10
#Due) Il metodo getScreenShotAs restituisce un oggetto file che deve essere memorizzato in una variabile di file. Tieni presente che il casting dell'istanza del driver web su Take Screenshot è obbligatorio se desideri utilizzare il metodo.
# 3) File Dest = nuovo file ('src /../ ErrImages /' + System.currentTimeMillis () + '.png');
# 4) L'istruzione precedente crea una cartella denominata 'ErrImages' all'interno della cartella 'src' e memorizza il nome del file come l'ora di sistema corrente.
# 5) String errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
returnerrflpath;
# 6) Le istruzioni precedenti copiano le immagini di errore nella cartella di destinazione.
Metodo registro:
Il metodo Log utilizza il metodo integrato, addScreenCapture della classe Extent Test per recuperare lo screenshot e aggiungerlo al report di estensione.
test.log (LogStatus.FAIL, test.addScreenCapture (capture (driver)) + 'Test Failed');
Il messaggio registrato nel metodo di registro può includere messaggi dettagliati inclusi i risultati attesi ed effettivi a scopo di debug.
Produzione:
Conclusione
I rapporti di estensione sono uno dei migliori modi integrati per generare rapporti HTML personalizzabili con un'interfaccia utente piacevole nel driver web Selenium.
È una libreria open source che può essere facilmente configurata con Selenium, rendendola così la scelta migliore per i tester di automazione.
Spero che ora abbiate un'idea chiara di Extent Reports.
Lettura consigliata
- Esercitazione sul selenio di cetriolo: integrazione del driver Web di selenio Java di cetriolo
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Implementazione del nostro primo script WebDriver - Selenium WebDriver Tutorial # 10
- Domande frequenti sul selenio
- Come gestire gli avvisi / popup in Selenium WebDriver - Selenium Tutorial # 16
- Attesa implicita ed esplicita in Selenium WebDriver (tipi di attese al selenio)
- Come eseguire Selenium WebDriver in diversi browser popolari
- WebDriver intera configurazione e installazione con Eclipse - Selenium Tutorial # 9