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.

  • 🔘 Vaikimisi väljund: Iga TestNG run loob test-output kausta ilma lisakoodita.
  • ☑️ Kaks HTML-vaadet: emailable-report.html võtab tulemused kokku, index.html lingib detailvaadetele.
  • ✅ Reporteri logid: Reporter.log() kirjutab kohandatud teated otse loodud aruandesse.
  • 🧪 Sviit pakub: Faili testng.xml käivitamine koondab mitu klassi ühte konsolideeritud aruandesse.
  • 🛠️ Kohandamine: ITestListener ja IReporter võimaldavad meeskonnal luua oma aruandevormingu.
  • 📊 Lisaks vaikeväärtustele: ExtentReports ja Allure lisavad diagramme, ajalugu ja ekraanipiltide manuseid.

TestNG aruannete genereerimine Selenium

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

  1. Klõpsake valikul „emailable-report.html”
  2. Klõpsake valikul veebibrauser

Allolev ekraanipilt näitab faili emailable-report.html avamist kaustast test-output.

Faili emailable-report.html valimine TestNG test-output kaust

Väljund esitab aruanded TestNG aruandlus näeb välja järgmine, kui mõlemad klassid on läbitud:

TestNG e-postiga saadetav aruanne, mis näitab DemoA ja DemoB testide sooritamist

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:

E-postiga saadetav aruanne, mis toob esile tahtlikult ebaõnnestunud DemoB testi juhtumi

Samamoodi näeb klassi demoA tulemus välja järgmine:

Läbitud DemoA kursuse kohta meili teel saadetava aruande kokkuvõtte rida

2. meetod: index.html

  1. Paremklõpsake projekti kataloogis failil index.html.
  2. Valige suvand Ava veebibrauseri valikuga. See kuvab tulemuse järgmises järjekorras.

Allolev ekraanipilt näitab, kuidas projekti kataloogist avatakse index.html faili.

Index.html faili avamine projekti kataloogist veebibrauseris

Tulemus näeb välja selline:

TestNG index.html aruande maandumisleht, mis loetleb käivitamise tulemuste vaated

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:

  1. Reporter.log(String s);
  2. Reporter.log(String s, Boolean logToStandardOut);
  3. Reporter.log(String s, int level);
  4. 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.

DemoA testklassi sees kirjutatud Reporter.log laused

Klassi DemoB jaoks:

DemoB testiklassi sees kirjutatud Reporter.log laused

  • 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.
  1. Avage testväljundi kaustas fail emailable-report.html. See näeb välja selline:

    Pärast DemoA ja DemoB testng.xml komplekti käivitamist loodud e-postiga saadetav aruanne

    Samamoodi on teil ka Demo B projekti väljund.

  2. Ava kaustas test-output fail index.html. See näeb välja selline:

    index.html aruanne, mis on loodud pärast testng.xml komplekti käivitamist

Klõpsake reporteri väljundil. See avab logimisteabe, mis iganes testimeetodites on kirjutatud.

TestNG reporteri väljundvaade, mis loetleb testimismeetodite logitud teateid

Klõpsake nuppu Times. See näitab, kui palju aega kulus tunnis kasutatava testmeetodi käivitamiseks TestNG aruandlustööriistad.

TestNG Ajavaade, mis näitab, kui kaua iga testimismeetodi käivitamine aega võttis

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.

KKK

Kaust ilmub alles pärast TestNG lõpetab käivitamise ja projekt värskendatakse IDE-s. Tühi kaust tähendab tavaliselt, et klass käivitati tavalise kaustana. Java rakendus või olid vaikekuulajad välja lülitatud, seega ükski reporter ei töötanud kunagi.

Jah. TestNG Vaikimisi kirjutab see test-outputisse. Edastage käsurealt valik -d või määrake väljundkataloog IDE käivituskonfiguratsioonis või Maven Surefire'i sätetes, mis komplekti käivitavad.

Jäädvusta pilt kuulajameetodi (nt onTestFailure) sees, salvesta fail aruande kõrvale ja seejärel kirjuta HTML-pildisilt faili Reporter.log kaudu. Aruanne renderdab märgistuse, nii et pilt kuvatakse ebaõnnestunud meetodi kõrval.

TestNG ise ei saada e-kirju. Meeskonnad lisavad tavaliselt faili emailable-report.html ehitustööst, näiteks Jenkins e-posti saatmise etapp pärast loomist või väikese meilirutiini lisamine IReporteri implementatsiooni sisse.

Tehisintellekti mudelid grupeerivad tõrkeid pinu abiltracsarnasuse eristamiseks eraldage tõelised defektid keskkonna- või ajastusvigade hulgast ja järjestage, milliseid ebaõnnestunud meetodeid kõigepealt kontrollida. Pikk e-postiga saadetavate aruannete loend muutub meeskonna jaoks lühikeseks prioriteetseks järjekorraks.

GitHubi koopia saab lühikese kommentaari põhjal tellingutena kasutada kuulajaklasse, Reporter.log avaldusi ja testng.xml kirjeid. Revvaadake iga soovitust, sest genereeritud kuulajad jätavad sageli täpsed liidese meetodid kahe silma vahele TestNG ootab.

Kui IRetryAnalyzer on ühendatud, salvestatakse iga korduskatse koos lõpptulemusega. Seega kuvatakse vaikearuandes iga katset, nii et ebastabiilne test võib sama testi käigus kuvada nii ebaõnnestumise kui ka õnnestumisena.

Anna käsurealt käsk „-usedefaultlisteners false“ või määra Maven Surefire'i või Ant'i konfiguratsioonis väärtuseks useDefaultListeners väärtuseks false. Seejärel käivituvad ainult need reporterid, mille sa selgesõnaliselt registreerid, mis lühendab väga suurte pakettide käivitamist.

Võta see postitus kokku järgmiselt: