TestNG Raporttien luominen sisään Selenium: Kuinka luoda?
⚡ Älykäs yhteenveto
TestNG Raportit ovat oletusarvoisia HTML-tulostiedostoja, jotka TestNG kirjoittaa testituloskansioon jokaisen suorituksen jälkeen ja näyttää mitkä testitapaukset läpäisivät, epäonnistuivat tai ohitettiin, sekä mahdolliset Reporter-lokit.
Mitä ovat TestNG Raportit?
TestNG Raportit ovat oletusarvoisia HTML-raportteja, jotka luodaan, kun testitapaukset on suoritettu käyttämällä TestNG. Nämä raportit auttavat sinua tunnistamaan tiedot testitapauksista ja projektin tilasta. TestNG raportteja Selenium kirjaa jokaiselle testimenetelmälle kolme tulosta – läpäisty, hylätty ja ohitettu – jotta voit tarkistaa testitapausten tiedot yhdellä silmäyksellä.
Raporttien luominen on erittäin tärkeää, kun teet automaatiotestausta sekä manuaalista testausta.
- Katsomalla tulosta voit helposti tunnistaa, kuinka monta testitapausta on hyväksytty, epäonnistunut ja ohitettu.
- Raporttia katsomalla saat selville, mikä projektin tila on.
Selenium WebDriveria käytetään verkkosovelluksen automatisointiin, mutta se ei luo raportteja erikseen.
- TestNG luo oletusraportin.
- Kun suoritat testng.xml-tiedoston ja päivität projektin, saat käyttöön test-output-kansion, joka sisältää raportin tulosteen. TestNG.
- Napsauta hiiren kakkospainikkeella emailable-report.html-tiedostoa ja valitse Avaa verkkoselaimella.
Huomautus: tässä kuvattu käyttäytyminen on muuttumaton TestNG 7.x. Julkaisut alkaen TestNG Versioista 7.6 eteenpäin vaaditaan JDK 11 tai uudempi, joten vanhemmassa projektissa JDK-tasoa saatetaan joutua nostamaan ennen raporttien tuottamista.
Tyyppisiä TestNG Raportit testituloskansiossa
Ennen yksittäisen tiedoston avaamista on hyödyllistä tietää, mitä test-output-kansio todellisuudessa sisältää. TestNG kirjoittaa useita artefakteja jokaisella ajokerralla, ja jokainen niistä vastaa eri kysymykseen.
| Tiedosto tai kansio | Mitä se pitää sisällään | Kun se on hyödyllistä |
| index.html | Laskeutumisraportti, joka linkittää tuloksiin, ryhmiin, aikoihin ja raportoijan tuotosnäkymiin. | Yhden juoksun yksityiskohtainen tarkastelu. |
| sähköpostitse lähetettävä raportti.html | Yksi itsenäinen sivu, joka yhteenvetää luokkakohtaisesti hyväksytyt, epäonnistuneet ja ohitetut metodit. | Tuloksen jakaminen ihmisten kanssa, jotka eivät avaa projektia. |
| testng-results.xml | Sisäänrakennetun XML-raportointityökalun kirjoittama koneellisesti luettava XML, jossa on menetelmäkohtainen tila ja kesto. | Syöttää tietoa kojelaudalle tai mukautettuun jäsentimeen. |
| junitreports | JUnit-muotoiset XML-tiedostot, yksi testiluokkaa kohden. | Mikä tahansa CI-laajennus, joka lukee JUnit tulosmuoto. |
| testng-failed.xml | Luotu suite-tiedosto, joka listaa vain epäonnistuneet metodit. | Suoritetaan uudelleen vain virheet koko paketin sijaan. |
Tämä tutoriaali avaa seuraavaksi nämä kaksi HTML-tiedostoa, joten alla oleva läpikäynti alkaa tiedostosta emailable-report.html.
Kuinka luoda raportteja sisään Selenium
Tapa 1: emailable-report.html
- Napsauta vaihtoehtoa "emailable-report.html"
- Napsauta vaihtoehtoa verkkoselain
Alla olevassa kuvakaappauksessa näkyy, kuinka emailable-report.html-tiedosto avataan test-output-kansiosta.
Tuotos raportoi sisään TestNG raportointi näyttää seuraavalta, jos molemmat luokat on hyväksytty:
Harkitse tilannetta, jossa olet tarkoituksella epäonnistunut testitapauksessa eli DemoB-luokassa. Muunna sitten molemmat luokat testng.xml-tiedostoksi ja suorita se. Sitten tulos näyttää tältä. Se näyttää epäonnistuneet testitapaukset.
Tämä on tulos DemoB-luokasta:
Vastaavasti luokan demoA:n tulos näyttää tältä:
Tapa 2: index.html
- Napsauta hiiren kakkospainikkeella projektihakemistossa olevaa index.html-tiedostoa.
- Valitse vaihtoehto avata verkkoselaimen kanssa. Se näyttää tuloksen seuraavassa järjestyksessä.
Alla olevassa kuvakaappauksessa näkyy, kuinka index.html-tiedosto avataan projektihakemistosta.
Tulos näyttää tältä:
Menetelmä 3: Reportteriluokka
Näiden ohella TestNG raporttien luomia menetelmiä, voit käyttää object.properties-tiedostoa tallentaaksesi järjestelmän luomat lokit sekä käyttäjien luomat lokit. Mutta yksi yksinkertaisimmista tavoista tallentaa lokitietoja testauksessa on käyttää Toimittajaluokka.
Reporter.kirjaudu sisään Selenium on luokka läsnä TestNG varten Selenium raportointi. Se tarjoaa neljä erilaista tapaa tallentaa lokitietoja:
- Reporter.log(String s);
- Reporter.log(String s, Boolen logToStandardOut);
- Reporter.log(String s, int level);
- Reporter.log(String s, int taso, Boolen logToStandardOut);
Toinen argumentti päättää, toistetaanko viesti sekä konsoliin että raporttiin, ja level-argumentti ohjaa viestin yksityiskohtaisuutta.
esimerkki:
Luo kaksi luokkaa, kuten DemoA ja DemoB, ja kirjoita seuraava koodi luokkiin.
Luokka DemoA;
- Code DemoA:lle on jo selitetty yllä. Tässä käytät Reporter-luokan lokimenetelmä. (Oman raportointiluokan toteuttamiseksi luokan on toteutettava org.testng.IReporter-rajapinta.)
- Lokimenetelmä on Reporter-luokan staattinen menetelmä. Joten käytät tätä menetelmää Reporter-luokan kautta.
- Lokimenetelmää käytetään ohjelman sisällä kirjoitettujen lokitietojen tallentamiseen. Katsomalla lokitietoja saat helposti selville, missä tarkalleen ohjelman suoritus on pysäytetty.
Alla olevassa kuvakaappauksessa näkyvät DemoA-luokan sisällä olevat Reporter.log-kutsuja.
Luokka DemoB:
- Luo nyt testng.xml-tiedosto valitsemalla nämä kaksi luokkaa ja
- Valitse Suorita ja
- Napsauta muuntaa testiksi.
- Suorita sitten tämä testng.xml-tiedosto valitsemalla Suorita ja valitse testng suite.
- Päivitä sitten projekti ja avaa testitulostuskansio.
- Avaa testitulostuskansiossa emailable-report.html. Se näyttää tältä:
Samoin sinulla on myös Output for Demo B -projekti.
- Avaa test-output-kansiossa oleva index.html-tiedosto. Se näyttää tältä:
Napsauta reportterin tulosta. Se avaa kirjaustiedot riippumatta siitä, mitä testimenetelmissä on kirjoitettu.
Napsauta Times-kohtaa. Se näyttää kuinka paljon aikaa kului luokassa olevan testimenetelmän suorittamiseen TestNG raportointityökalut.
Kuinka mukauttaa TestNG Raportit ITestListenerin ja IReporterin avulla
Yllä olevat kolme menetelmää käyttävät mitä tahansa TestNG tuottaa oletuksena. Kun tiimi tarvitsee erilaisen asettelun, lisäkenttiä tai reaaliaikaisen edistymisnäkymän, TestNG paljastaa kaksi laajennuspistettä sen sijaan, että pyytäisi sinua korjaamaan oletusraportin.
- ITestListener saa reaaliaikaisen ilmoituksen kunkin testin alkaessa, läpäistessä, epäonnistuessa tai ohitettaessa. Käytä sitä, kun tiedot on kerättävä tapahtumahetkellä – esimerkiksi kuvakaappaus epäonnistumisesta.
- IReporter saa ilmoituksen kerran jokaisen suoritussarjan päättymisen jälkeen ja vastaanottaa koko suoritusajon kuvaavat objektit. Käytä sitä, kun tulosteena on valmis dokumentti, kuten PDF tai mukautettu HTML-sivu.
Kuuntelija, joka lisää jokaisen tuloksen raporttiin Reporter-luokan kautta, näyttää tältä.
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); } }
Kuuntelijan rekisteröinti tehdään samassa testng.xml-tiedostossa, jonka olet jo luonut DemoA:lle ja DemoB:lle.
<suite name="Demo Suite"> <listeners> <listener class-name="ReportListener" /> </listeners> <test name="Demo Test"> <classes> <class name="DemoA" /> <class name="DemoB" /> </classes> </test> </suite>
Kaksi komentorivivalitsinta on hyvä tietää kokeillessa. -d vaihtoehto vaihtaa hakemistoa, johon raportit kirjoitetaan, ja -usedefaultlisteners false kytkee sisäänrakennetut raportointitoiminnot pois päältä, jotta vain oma kuuntelijasi toimii. Molemmat on kuvattu virallisessa TestNG lokikirjaus ja tulosten dokumentointi, joka dokumentoi myös sisäänrakennetun XML-raportointityökalun hyväksymät ominaisuudet.
Kuuntelija rekisteröidään kerran ja sitten se koskee jokaista sarjan luokkaa, minkä vuoksi suuria ryhmiä automaatiotestaus ohjelmistopaketit suosivat sitä yleensä sen sijaan, että lisäisivät lokirivit jokaiseen testimenetelmään manuaalisesti.
TestNG Oletusraportit vs. ExtentReports vs. Allure
Oletusraportit riittävät pieneen ohjelmistopakettiin, mutta niissä ei ole historiaa eikä kaavioita. Kaksi avoimen lähdekoodin kirjastoa liitetään yleensä ohjelmistopaketin kasvaessa, ja molemmat toimivat seuraavien kanssa: TestNG.
| Capability | TestNG oletusarvo | Laajuusraportit | Allure-raportti |
| Asennustyö | Ei mitään – tuotetaan automaattisesti | Lisää kirjasto ja kirjoita raportointikoodi | Lisää sovitin ja luo sitten raportti tuloksista |
| Kaaviot ja kojelaudat | Ei | Kyllä | Kyllä |
| Kuvakaappauksia | Vain Reporter.log-merkintöjen kautta | Sisäänrakennettu liitetiedostojen API | Sisäänrakennettu liitetiedostojen API |
| Juoksuhistoria ja trendit | Ei | Valinnaisen palvelinkomponentin kautta | Kyllä, tallennetuista aiemmista tuloksista |
| Viitekehyksen kattavuus | TestNG vain | Java ja .NET | Kehysriippumaton |
Aloita oletusarvoisilla raporteilla, kun ohjelmistopaketti on pieni. Siirry kohtaan Laajuusraportit kun sidosryhmät pyytävät luettavia koontinäyttöjä ja Allure-raportti kun epätasaisen testihistorian tarkastelu eri koontiversioissa tulee ratkaisevaksi kysymykseksi. Valitsitpa kumman tahansa, raportti julkaistaan yleensä koontityön mukaan, mitä käsitellään kohdassa Jenkins jatkuva integrointi opetusohjelma.












