guide generate extent reports selenium webdriver
Kako generirati opsežna izvješća u Selenium WebDriver:
Selenium pruža ugrađena izvješća pomoću okvira poput JUnit i TestNG.
Iako ugrađena izvješća pružaju informacije o koracima koji se izvršavaju kao dio testnog slučaja, potrebna im je veća prilagodba kako bi se podijelili sa svim glavnim dionicima projekta.
Extent Reports prilagodljivo je HTML izvješće koje je razvio Anshoo Arora i koje se može integrirati u Selenium WebDriver pomoću JUnit i TestNG okvira.
Ovaj će vam vodič pružiti cjelovit detaljni vodič o tome kako generirati opsežna izvješća u programu Selenium WebDrive s primjerima kodova.
Ispod je snimka ugrađenog izvješća koje pruža TestNG framework:
Opsežna izvješća nude nekoliko prednosti u usporedbi s ugrađenim izvješćima koja se generiraju putem JUnit-a i TestNG-a, poput prikaza tortnih grafikona, generiranja izvještaja u stupnjevima, dodavanja snimki zaslona itd., U svakom koraku ispitivanja i prezentabilnog korisničkog sučelja s kojim se može dijeliti svi dionici projekta.
Ispod je snimka uzorka Izvješća o opsegu u prikazu tortnog grafikona
(Bilješka:Kliknite bilo koju sliku za uvećani prikaz)
Što ćete naučiti:
- Prednosti korištenja opsežnih izvješća
- Korištenje opsežnih izvješća u programu Selenium Webdriver
- Uzorak koda za opsežna izvješća
- Sažetak testa
- Grafički izvještaj tortnog grafikona
- Snimka zaslona snimanja u opsežnim izvješćima
- Zaključak
- Preporučena literatura
Prednosti korištenja opsežnih izvješća
Postoji nekoliko prednosti opsežnih izvješća, a o nekoliko se govori u nastavku.
- Prilagodljivo HTML izvješće s postupnim i tortnim prikazom.
- Prikazuje vrijeme potrebno za izvršenje test slučaja u izvješću.
- Svaki testni korak može se povezati sa snimkom zaslona.
- Višestruki test slučajevi u okviru jednog paketa mogu se lako pratiti.
- Može se jednostavno integrirati s okvirima TestNG i JUnit.
Korištenje opsežnih izvješća u programu Selenium Webdriver
Opsežna izvješća sadrže dvije glavne klase koje se često koriste.
- ExtentReports klasa
- Klasa ExtentTest
Sintaksa:
ExtentReports izvješća = novi ExtentReports („Put direktorija za pohranu rezultirajuće HTML datoteke“, true / false);
kako implementirati hash tablicu u javu
ExtentTest test = reports.startTest (“TestName”);
Klasa Extent Reports koristi se za generiranje HTML izvješća na korisnički navedenom putu. Booleova zastava označava treba li postojeće izvješće prebrisati ili treba stvoriti novo izvješće. Vrijednost 'true' zadana je vrijednost, što znači da će svi postojeći podaci biti prebrisani.
Ekstenzivna klasa testa koristi se za bilježenje koraka testa u generirano HTML izvješće.
Gore navedene klase mogu se koristiti s često korištenim ugrađenim metodama koje su navedene u nastavku.
- startTest
- endTest
- Dnevnik
- ispiranje
metode startTest i endTest koriste se za izvršavanje preduvjeta i post-uvjeta test slučaja, dok se metoda dnevnika koristi za bilježenje statusa svakog test koraka u rezultirajuće HTML izvješće. Metoda ispiranja koristi se za brisanje svih prethodnih podataka u izvješću i stvaranje novog izvješća.
Status ispitivanja može biti bilo koja od sljedećih vrijednosti:
- PROĆI
- IZNEVJERITI
- PRESKOČITI
- INFO
Sintaksa:
izvješća.endTest ();
test.log (LogStatus.PASS, ”Test je položen”);
test.log (LogStatus.FAIL, ”Test nije uspio”);
test.log (LogStatus.SKIP, ”Test preskočen”);
test.log (LogStatus.INFO, ”Informacije o testiranju”);
najbolji softver za snimanje zaslona Windows 10
Metoda dnevnika uzima dva parametra, prvi parametar je status ispitivanja, a drugi parametar je poruka koja se ispisuje u rezultantnom izvješću.
Uzorak koda za opsežna izvješća
Dolje spomenuti redoslijed koraka za korištenje opsežnih izvješća u programu Selenium Webdriver u Junitu.
Korak 1:
Opsežna izvješća mogu se izravno koristiti u selenium WebDriveru uvozom JAR datoteke - extereports-java-2.41.2.jar koja se može preuzeto ovdje .
Nakon što se ZIP datoteka preuzme, izvucite sadržaj ZIP datoteke u mapu.
Korak 2:
Dodajte jar datoteke prisutne u ZIP datoteci na putanju izrade projekta pomoću opcije Put gradnje -> Konfiguriranje puta gradnje.
3. korak:
Stvorite novu JAVA klasu s donjim kodom za opsežna izvješća.
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(); } }
Objašnjenje koda
@BeforeClass:
Gornji kôd pokazuje upotrebu opsega izvješća. Izvršenje test slučaja započinje metodom startTest, koja uključuje inicijalizaciju objekta Extent Reports. Parametar prosljeđen objektu Extent Reports može biti bilo koja valjana korisnički definirana staza.
Radi jednostavnosti, primjer koristi trenutni direktorij projekta za generiranje rezultirajućeg HTML izvješća. Sljedeća izjava uključuje inicijalizaciju objekta ExtentTest s povratnom vrijednošću metode startTest.
@Test:
Test klasa uključuje sljedeće korake:
- Otvorite preglednik Chrome s ovim URL-om https://www.google.com
- Provjerite naslov stranice s očekivanom vrijednošću nakon što se stranica otvori.
- Zabilježite status testnog slučaja kao PASS / FAIL pomoću metode dnevnika opsega izvješća.
@Nakon nastave:
Nakon što klasa uključuje kôd za izvršavanje postuslova testnog slučaja, poput završetka testa metodom endTest i ispiranja izvješća. Napominjemo da se izvještaj neće generirati ako se ne koristi metoda flush ().
T je Sažeti izvještaj
Grafički izvještaj tortnog grafikona
Snimka zaslona snimanja u opsežnim izvješćima
Snimanje zaslona zajedno s izvršenjem testa pomoći će ispitivaču u otklanjanju pogrešaka u testnoj skripti ako se tijekom izvođenja testa naiđu na probleme. Međutim, poželjno je snimiti snimku zaslona samo ako testni korak ne uspije, jer će slike potrošiti više memorije ako su snimljene na svakom testnom koraku.
Snimke zaslona mogu se snimiti za svaki neuspjeli korak pomoću donjeg koda.
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; }
Objašnjenje koda
Način snimanja:
# 1) metoda getScreenShotAs () koristi se za snimanje snimke zaslona trenutne instance WebDriver i pohranjivanje u različite izlazne oblike.
Datoteka scrFile = ((TakesScreenshot) pokretački program) .getScreenshotAs (OutputType.FILE);
#dva) getScreenShotAs metoda vraća objekt datoteke koji treba biti pohranjen u varijablu datoteke. Imajte na umu da je lijevanje instance web upravljačkog programa na Snimanje zaslona obvezno ako želite koristiti metodu.
# 3) Odrednica datoteke = nova datoteka (“src /../ ErrImages /” + System.currentTimeMillis () + “.png”);
kako mogu otvoriti swf datoteku
# 4) Gornja izjava stvara mapu nazvanu ‘ErrImages’ unutar mape ‘src’ i pohranjuje naziv datoteke kao trenutačno sistemsko vrijeme.
# 5) Niz errflpath = Dest.getAbsolutePath ();
FileUtils.copyFile (scrFile, Dest);
povratnikrflpath;
# 6) Gornje izjave kopiraju slike pogrešaka u odredišnu mapu.
Metoda dnevnika:
Metoda dnevnika koristi ugrađenu metodu, addScreenCapture klase Extent Test za dohvaćanje snimke zaslona i dodavanje je izvješću o opsegu.
test.log (LogStatus.FAIL, test.addScreenCapture (snimanje (pokretački program)) + „Test nije uspio“);
Poruka zabilježena metodom dnevnika može sadržavati detaljnu poruku, uključujući očekivane i stvarne rezultate u svrhu uklanjanja pogrešaka.
Izlaz:
Zaključak
Opsežna izvješća jedan su od najboljih ugrađenih načina za generiranje prilagodljivih HTML izvještaja s ugodnim korisničkim sučeljem u web pogonitelju Selenium.
To je biblioteka otvorenog koda koju je lako moguće konfigurirati pomoću selena, što je čini najboljim izborom za automatizacijske testere.
Nadam se da biste sada imali jasnu ideju o opsegu izvješća.
Preporučena literatura
- Vodič za selenij krastavaca: Integracija Java Selenium WebDriver za krastavac
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Implementacija naše prve skripte WebDriver - Vodič br. 10 za Selenium WebDriver
- Česta pitanja o selenu
- Kako postupati s upozorenjima / skočnim prozorima u Selenium WebDriver - Vodič za selen # 16
- Implicitno i eksplicitno čekanje u Selenium WebDriver (vrste selenijskih čekanja)
- Kako pokrenuti Selenium WebDriver u različitim popularnim preglednicima
- Cjelokupno postavljanje i instaliranje WebDriver-a s Eclipseom - Selen Tutorial # 9