TestNG Aruannete loomine sisse Selenium: Kuidas genereerida?
⚡ Nutikas kokkuvõte
TestNG Aruanded on vaikimisi HTML-tulemuste failid, mis TestNG kirjutab pärast iga testimist kausta test-output, näidates, millised testid õnnestusid, ebaõnnestusid või vahele jäeti, ning kõik Reporteri logid.
Mis on TestNG Aruanded?
TestNG Aruanded on HTML-i vaikearuanded, mis luuakse pärast testjuhtumite käivitamist TestNG. Need aruanded aitavad teil tuvastada teavet testjuhtumite ja projekti oleku kohta. TestNG aruanded aastal Selenium Salvesta iga testimismeetodi kohta kolm tulemust – läbitud, mitte läbitud ja vahele jäetud –, et saaksid testide andmeid ühe pilguga kontrollida.
Aruannete koostamine on väga oluline nii automatiseerimise testimisel kui ka käsitsi testimisel.
- Tulemust vaadates saate hõlpsalt tuvastada, kui palju testjuhtumeid on läbitud, ebaõnnestunud ja vahele jäetud.
- Aruannet vaadates saate teada, milline on projekti seis.
Selenium WebDriverit kasutatakse veebirakenduse automatiseerimiseks, kuid see ei genereeri ise ühtegi aruannet.
- . TestNG loob vaikearuande.
- Kui käivitate faili testng.xml ja värskendate projekti, saate test-output kausta, mis sisaldab aruandluse väljundit projektist. TestNG.
- Paremklõpsake failil emailable-report.html ja valige suvand „Ava veebibrauseris”.
Märge: siin kirjeldatud käitumine ei muutu TestNG 7.x. Väljalasked alates TestNG Versioonid 7.6 ja hilisemad nõuavad JDK 11 või uuemat, seega võib vanem projekt vajada enne aruannete koostamist JDK taseme tõstmist.
Tüübid TestNG Aruanded testväljundi kaustas
Enne ükskõik millise faili avamist on kasulik teada, mida test-output kaust tegelikult sisaldab. TestNG kirjutab igal jooksukorral mitu artefakti ja igaüks neist vastab erinevale küsimusele.
| Fail või kaust | Mida see hoiab | Millal see on kasulik |
| index.html | Maandumisaruanne, mis lingib tulemuste, rühmade, aegade ja reporteri väljundvaadetega. | Ühe jooksu detailne uurimine. |
| e-postiga saadetav aruanne.html | Üks iseseisev leht, mis võtab kokku iga klassi edukad, ebaõnnestunud ja vahelejäetud meetodid. | Tulemuse jagamine inimestega, kes projekti ei ava. |
| testng-results.xml | Sisseehitatud XML-reporteri kirjutatud masinloetav XML koos meetodipõhise oleku ja kestusega. | Armatuurlaua või kohandatud parseri toitmine. |
| juuniaruanded | JUnit-vormingus XML-failid, üks iga testiklassi kohta. | Iga CI plugin, mis loeb JUnit tulemuse vorming. |
| testng-failed.xml | Genereeritud komplektifail, mis loetleb ainult ebaõnnestunud meetodid. | Ainult tõrgete uuesti käivitamine kogu komplekti asemel. |
See õpetus avab järgmisena need kaks HTML-faili, seega algab allolev samm failist emailable-report.html.
Kuidas luua aruandeid Selenium
1. meetod: emailable-report.html
- Klõpsake valikul „emailable-report.html”
- Klõpsake valikul veebibrauser
Allolev ekraanipilt näitab faili emailable-report.html avamist kaustast test-output.
Väljund esitab aruanded TestNG aruandlus näeb välja järgmine, kui mõlemad klassid on läbitud:
Mõelge stsenaariumile, kus ebaõnnestute tahtlikult testjuhtumis, st DemoB klassis. Seejärel teisendage mõlemad klassid komplekti failiks testng.xml ja käivitage see. Siis näeb tulemus välja selline. See näitab ebaõnnestunud testjuhtumid.
See on DemoB klassi tulemus:
Samamoodi näeb klassi demoA tulemus välja järgmine:
2. meetod: index.html
- Paremklõpsake projekti kataloogis failil index.html.
- Valige suvand Ava veebibrauseri valikuga. See kuvab tulemuse järgmises järjekorras.
Allolev ekraanipilt näitab, kuidas projekti kataloogist avatakse index.html faili.
Tulemus näeb välja selline:
3. meetod: Reporteriklass
Nendega koos TestNG aruande loodud meetodite abil saate faili object.properties kasutada nii süsteemi loodud logide kui ka kasutaja loodud logide salvestamiseks. Kuid üks lihtsamaid viise logiteabe salvestamiseks testimisel on kasutamine Reporteri klass.
Reporter.logi sisse Selenium on klass kohal TestNG eest Selenium aruandlus. See pakub 4 erinevat meetodit logiteabe salvestamiseks:
- Reporter.log(String s);
- Reporter.log(String s, Boolean logToStandardOut);
- Reporter.log(String s, int level);
- Reporter.log(String s, int tase, Boolean logToStandardOut);
Teine argument otsustab, kas sõnum edastatakse nii konsoolile kui ka aruandesse, ja argument „level” kontrollib sõnumi üksikasjalikkust.
Näide:
Looge kaks klassi, näiteks DemoA ja DemoB, ja kirjutage klassidesse järgmine kood.
Klassi DemoA jaoks;
- . Code DemoA jaoks on see juba eespool selgitatud. Siin kasutate Reporter klassi logimeetod. (Oma aruandlusklassi loomiseks peab klass implementeerima org.testng.IReporter liidese.)
- Logimeetod on Reporter klassi staatiline meetod. Nii et pääsete sellele meetodile juurde Reporter klassi kaudu.
- Logimeetodit kasutatakse programmi sees kirjutatud logiteabe salvestamiseks. Logiteavet vaadates saate hõlpsalt teada, kus täpselt programmi täitmine peatatakse.
Allolev ekraanipilt näitab DemoA klassi sees tehtud Reporter.log päringuid.
Klassi DemoB jaoks:
- Nüüd looge fail testng.xml, valides need kaks klassi ja
- Valige Käivita nagu ja
- Klõpsake testimiseks teisendamist.
- Seejärel käivitage see testng.xml fail, valides käsu Run as ja seejärel testng suite.
- Seejärel värskendage projekti ja avage test-väljundi kaust.
- Avage testväljundi kaustas fail emailable-report.html. See näeb välja selline:
Samamoodi on teil ka Demo B projekti väljund.
- Ava kaustas test-output fail index.html. See näeb välja selline:
Klõpsake reporteri väljundil. See avab logimisteabe, mis iganes testimeetodites on kirjutatud.
Klõpsake nuppu Times. See näitab, kui palju aega kulus tunnis kasutatava testmeetodi käivitamiseks TestNG aruandlustööriistad.
Kuidas kohandada TestNG Aruanded ITestListeneri ja IReporteriga
Ülaltoodud kolm meetodit kasutavad ükskõik mida TestNG loob vaikimisi. Kui meeskond vajab teistsugust paigutust, lisavälju või reaalajas edenemise vaadet, TestNG näitab kahte laienduspunkti, selle asemel et paluda teil vaikearuannet parandada.
- ITestListener saab reaalajas teavituse iga testi algusest, läbimisest, ebaõnnestumisest või vahelejätmisest. Kasutage seda siis, kui teave on vaja jäädvustada sündmuse toimumise hetkel – näiteks ekraanipilt ebaõnnestumisest.
- IReporter saab pärast iga komplekti lõppu üks teate ja saab kogu tsüklit kirjeldavad objektid. Kasutage seda siis, kui väljundiks on valmis dokument, näiteks PDF või kohandatud HTML-leht.
Kuulaja, mis saadab iga tulemuse aruandesse Reporter klassi kaudu, näeb välja selline.
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); } }
Kuulaja registreerimine toimub samas testng.xml komplektifailis, mille olete juba DemoA ja DemoB jaoks loonud.
<suite name="Demo Suite"> <listeners> <listener class-name="ReportListener" /> </listeners> <test name="Demo Test"> <classes> <class name="DemoA" /> <class name="DemoB" /> </classes> </test> </suite>
Katsetamise ajal tasub teada kahte käsurea lülitit. -d valik muudab kataloogi, kuhu aruanded kirjutatakse, ja -usedefaultlisteners väär lülitab sisseehitatud reporterid välja, nii et töötab ainult teie enda kuulaja. Mõlemad on ametlikus juhendis kirjeldatud. TestNG logimine ja tulemuste dokumenteerimine, mis dokumenteerib ka sisseehitatud XML-reporteri poolt aktsepteeritud omadusi.
Kuulaja registreeritakse üks kord ja seejärel rakendub see kõigile komplekti kuuluvatele klassidele, mistõttu suured meeskonnad automaatika testimine Suite'id eelistavad seda tavaliselt iga testimismeetodi käsitsi logiridade lisamisele.
TestNG Vaikimisi aruanded vs ExtentReports vs Allure
Vaikimisi aruanded on väikese tarkvarapaketi jaoks piisavad, kuid neil puudub ajalugu ja diagrammid. Tavaliselt lisatakse tarkvarapaketi laienedes kaks avatud lähtekoodiga teeki ja mõlemad töötavad TestNG.
| Võime | TestNG vaikimisi | ExtentReports | Allure'i aruanne |
| Seadistamise pingutus | Puudub – toodetud automaatselt | Lisa teek ja kirjuta reporteri kood | Lisage adapter ja seejärel genereerige tulemustest aruanne |
| Diagrammid ja armatuurlauad | Ei | Jah | Jah |
| Ekraanikuvad | Ainult Reporter.log märgistuse kaudu | Sisseehitatud manuste API | Sisseehitatud manuste API |
| Jooksu ajalugu ja trendid | Ei | Valikulise serverikomponendi kaudu | Jah, salvestatud varasemate tulemuste põhjal |
| Raamistiku ulatus | TestNG ainult | Java ja .NET | Raamistiku agnostik |
Alusta vaikearuannetega, kuni pakett on väike. Liigu edasi ExtentReports kui sidusrühmad küsivad loetavaid juhtpaneele ja Allure'i aruanne kui ebaühtlase testimise ajalugu eri versioonide vahel muutub oluliseks küsimuseks. Olenemata sellest, kumma valiku teete, avaldab aruande tavaliselt versioonitöö, mida käsitletakse jaotises Jenkins pidev integratsioon juhendaja.












