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: