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.












