TestNG Generiranje izvješća u Selenium: Kako generirati?
⚡ Pametni sažetak
TestNG Izvješća su zadane HTML datoteke rezultata koje TestNG zapisuje u mapu test-output nakon svakog pokretanja, prikazujući koji su testni slučajevi prošli, neuspjeli ili su preskočeni, plus sve Reporter zapise.
Što su TestNG Izvještaji?
TestNG Izvješća su zadana HTML izvješća koja se generiraju nakon što se testni slučajevi izvrše pomoću TestNG. Ova izvješća vam pomažu identificirati informacije o testnim slučajevima i statusu projekta. TestNG izvješća u Selenium Zabilježite tri ishoda za svaku metodu testiranja - prolaz, pad i preskoči - kako biste mogli na prvi pogled provjeriti podatke o testnim slučajevima.
Generiranje izvješća vrlo je važno kada provodite automatizirano testiranje, kao i za ručno testiranje.
- Gledajući rezultat, možete lako utvrditi koliko je testnih slučajeva prošlo, neuspješno i preskočeno.
- Uvidom u izvješće saznat ćete kakav je status projekta.
Selenium WebDriver se koristi za automatizaciju web aplikacije, ali samostalno ne generira nikakva izvješća.
- The TestNG će generirati zadano izvješće.
- Kada pokrenete datoteku testng.xml i osvježite projekt, dobit ćete mapu test-output, a ta mapa sadrži izlaz izvješća iz TestNG.
- Desnom tipkom miša kliknite na emailable-report.html i odaberite opciju Otvori s web preglednikom.
Bilješka: ponašanje opisano ovdje ostaje nepromijenjeno u TestNG 7.x. Izdanja iz TestNG Verzije od verzije 7.6 nadalje zahtijevaju JDK 11 ili noviju verziju, tako da stariji projekti mogu zahtijevati podizanje razine JDK-a prije nego što se izvješća izrade.
Vrste TestNG Izvješća u mapi test-output
Prije otvaranja bilo koje datoteke, korisno je znati što mapa test-output zapravo sadrži. TestNG zapisuje nekoliko artefakata u svakom prolazu, a svaki od njih odgovara na drugačije pitanje.
| Datoteka ili mapa | Što sadrži | Kada je korisno |
| index.html | Izvješće o slijetanju koje povezuje s rezultatima, grupama, vremenima i prikazima izvještaja izvjestitelja. | Detaljno proučavanje jednog trčanja. |
| izvješće-za-e-poštu.html | Jedna samostalna stranica koja sažima uspješne, neuspješne i preskočene metode po klasi. | Dijeljenje rezultata s ljudima koji ne otvaraju projekt. |
| testng-results.xml | Strojno čitljiv XML koji je napisao ugrađeni XML reporter, sa statusom i trajanjem za svaku metodu. | Unos podataka u nadzornu ploču ili prilagođeni parser. |
| junitreports | JUnit-format XML datoteke, jedna po ispitnoj klasi. | Bilo koji CI dodatak koji čita JUnit format rezultata. |
| testng-failed.xml | Generirana datoteka paketa koja navodi samo metode koje nisu uspjele. | Ponovno pokretanje samo kvarova umjesto cijelog paketa. |
Dvije HTML datoteke su one koje se sljedeće otvaraju u ovom vodiču, pa donji vodič počinje s emailable-report.html.
Kako generirati izvješća u Selenium
Metoda-1: emailable-report.html
- Kliknite na opciju “emailable-report.html”
- Kliknite opciju web preglednik
Snimka zaslona u nastavku prikazuje otvaranje datoteke emailable-report.html iz mape test-output.
Izlaz javlja u TestNG izvješćivanje će izgledati ovako ako su oba razreda prošla:
Razmotrite scenarij u kojem namjerno padate na ispitnom slučaju, tj. DemoB klasi. Zatim pretvorite obje klase u datoteku paketa testng.xml i pokrenite je. Tada će rezultat izgledati ovako. Pokazat će neuspjeli testni slučajevi.
Ovo je rezultat za DemoB klasu:
Slično, rezultat za Class DemoA izgledat će ovako:
Metoda-2: index.html
- Desni klik na index.html iz direktorija projekta.
- Odaberite opciju otvaranja s opcijom web preglednika. Prikazat će rezultat sljedećim redoslijedom.
Snimka zaslona u nastavku prikazuje otvaranje datoteke index.html iz direktorija projekta.
Rezultat će izgledati ovako:
Metoda-3: Čas izvjestitelja
Uz ove TestNG metode koje generira izvješće, možete koristiti datoteku object.properties za pohranjivanje zapisnika koje je generirao sustav kao i zapisnike koje je generirao korisnik. Ali jedan od najjednostavnijih načina za pohranjivanje podataka dnevnika u testiranju je korištenje Reporter Klasa.
Reporter.uloguj se Selenium je razred prisutan u TestNG za Selenium izvještavanje. Omogućuje 4 različite metode za pohranjivanje podataka dnevnika, a to su:
- Reporter.log(Niz s);
- Reporter.log(String s, Boolean logToStandardOut);
- Reporter.log(String s, int level);
- Reporter.log(String s, int level, Boolean logToStandardOut);
Drugi argument odlučuje hoće li se poruka prikazati na konzoli kao i u izvješću, a argument level kontrolira razinu detalja poruke.
Primjer:
Napravite dvije klase kao što su DemoA i DemoB i napišite sljedeći kod unutar klasa.
Za razred DemoA;
- The Code za DemoA je već objašnjeno gore. Ovdje koristite log metoda klase Reporter. (Za implementaciju vlastite klase izvještavanja, klasa mora implementirati sučelje org.testng.IReporter.)
- Log metoda je statična metoda klase Reporter. Dakle, toj metodi pristupate kroz klasu Reporter.
- Metoda zapisnika koristi se za pohranjivanje podataka zapisnika koji su napisani unutar programa. Gledajući informacije u dnevniku, lako ćete saznati gdje je točno zaustavljeno izvršenje programa.
Snimka zaslona u nastavku prikazuje pozive funkcije Reporter.log smještene unutar klase DemoA.
Za klasu DemoB:
- Sada stvorite datoteku testng.xml odabirom ove dvije klase i
- Odaberite Run as i
- Kliknite na pretvori u testng.
- Zatim pokrenite ovu datoteku testng.xml odabirom Pokreni kao i odabirom paketa testng.
- Zatim osvježite projekt i otvorite mapu test-output.
- U mapi test-output otvorite emailable-report.html. Izgledat će ovako:
Slično tome, imat ćete i Output za Demo B projekt.
- U mapi test-output otvorite datoteku index.html. Izgledat će ovako:
Kliknite na izlaz reportera. Otvorit će podatke o zapisivanju bez obzira što je napisano u testnim metodama.
Kliknite na Times. Pokazat će koliko je vremena bilo potrebno da se pokrene testna metoda prisutna u razredu TestNG alati za izvještavanje.
Kako prilagoditi TestNG Izvješća s ITestListenerom i IReporterom
Tri gore navedene metode koriste bilo što TestNG proizvodi prema zadanim postavkama. Kada timu treba drugačiji izgled, dodatna polja ili prikaz napretka uživo, TestNG otkriva dvije točke proširenja umjesto da vas traži da zakrpate zadano izvješće.
- ITestListener obavještava se u stvarnom vremenu, kako svaki test počinje, prolazi, ne uspijeva ili se preskače. Koristite ga kada se informacije moraju snimiti u trenutku kada se događaj dogodi - na primjer, snimka zaslona u slučaju neuspjeha.
- IReporter obavještava se jednom, nakon što je svaki paket završen, i prima objekte koji opisuju cijelo izvođenje. Koristite ga kada je izlaz gotov dokument, kao što je PDF ili prilagođena HTML stranica.
Slušač koji svaki ishod unosi u izvješće putem klase Reporter izgleda ovako.
import org.testng.ITestListener; import org.testng.ITestResult; import org.testng.Reporter; public class ReportListener implements ITestListener { @Override public void onTestSuccess(ITestResult result) { Reporter.log("PASSED: " + result.getName(), true); } @Override public void onTestFailure(ITestResult result) { Reporter.log("FAILED: " + result.getName(), true); } @Override public void onTestSkipped(ITestResult result) { Reporter.log("SKIPPED: " + result.getName(), true); } }
Registracija slušača se vrši u istoj datoteci testng.xml koju ste već kreirali za DemoA i DemoB.
<suite name="Demo Suite"> <listeners> <listener class-name="ReportListener" /> </listeners> <test name="Demo Test"> <classes> <class name="DemoA" /> <class name="DemoB" /> </classes> </test> </suite>
Dok eksperimentirate, vrijedi znati dva prekidača naredbenog retka. -d opcija mijenja direktorij u koji se zapisuju izvješća i -usedefaultlisteners lažno isključuje ugrađene reportere tako da se pokreće samo vaš vlastiti slušač. Oba su opisana u službenom TestNG evidentiranje i dokumentiranje rezultata, koji također dokumentira svojstva koja prihvaća ugrađeni XML reporter.
Slušač se registrira jednom, a zatim se primjenjuje na svaku klasu u paketu, zbog čega timovi koji rade s velikim ispitivanje automatizacije Paketi to obično preferiraju u odnosu na ručno dodavanje redaka zapisnika svakoj metodi testiranja.
TestNG Zadana izvješća u usporedbi s ExtentReports i Allure
Zadana izvješća su dovoljna za mali paket, ali ne sadrže povijest ni grafikone. Dvije biblioteke otvorenog koda obično se dodaju kada paket raste i obje rade s TestNG.
| Sposobnost | TestNG zadani | Izvješća o opsegu | Izvješće o privlačnosti |
| Napor postavljanja | Ništa — automatski se proizvodi | Dodajte biblioteku i napišite kod za izvještavanje | Dodajte adapter, a zatim generirajte izvješće iz rezultata |
| Grafikoni i nadzorne ploče | Ne | Da | Da |
| Slike | Samo putem Reporter.log oznake | Ugrađeni API za priloge | Ugrađeni API za priloge |
| Povijest i trendovi trčanja | Ne | Putem opcionalne serverske komponente | Da, iz pohranjenih prethodnih rezultata |
| Okvirno pokriće | TestNG samo | Java i .NET | Neovisan o okviru |
Započnite s zadanim izvješćima dok je paket mali. Prijeđite na Izvješća o opsegu kada dionici zatraže čitljive nadzorne ploče i Izvješće o privlačnosti kada povijest nestabilnih testova u različitim verzijama postane važno pitanje. Što god odaberete, izvješće obično objavljuje zadatak izgradnje, što je obuhvaćeno u Jenkins kontinuirana integracija udžbenik.












