„Selenium WebDriver“: „TestNG“ bandomųjų atvejų tvarkymui ir ataskaitų generavimui

Ši „Selenium WebDriver“ mokymo programa padės suprasti poreikį naudoti „TestNG“ kartu su „Selenium“ bandymų atvejams valdyti ir išsamių bandymų ataskaitų generavimui.

Ankstesniame tinklaraštyje aš išmokiau jus paleisti pirmąjį „Selenium WebDriver“ testą. Šiame tinklaraštyje aptarsiu išplėstines „Selenium WebDriver“ koncepcijas. Jau ne kartą minėjau, kad „Selenium WebDriver“ turi apribojimų, susijusių su bandymų atvejų valdymu ir bandymų ataskaitų generavimu. Taigi, kokia yra alternatyva? Toks populiarus įrankis kaip „Selenium“ tikrai turi apeiti? Žinoma, kad taip! Šiam apribojimui įveikti galime naudoti Seleno ir TestNG derinį. Tai bus šio tinklaraščio diskusijos tema.

abstrakčios klasės ir sąsajos skirtumas

Jei esate naujas „Selenium“ vartotojas ir norite susipažinti su pagrindinėmis sąvokomis, galite pradėti savo kelionę čia: ? Tačiau kiti šiame tinklaraštyje gali pradėti naudoti „TestNG for Selenium“.Jūs taip pat turėtumėte žinoti, kad organizacijos aktyviai medžioja profesionalus , todėl programinės įrangos testuotojams tai yra svarbus įgūdis.

Programinės įrangos kūrėjai iš viso pasaulio vieningai sutiks, kad rašant kodą bandomaisiais atvejais sutaupoma didelė jų derinimo laiko dalis. Kodėl? Taip yra todėl, kad bandomieji atvejai padeda sukurti patikimą ir be klaidų kodą. Kaip tai daro? Suskirstydami visą kodą į mažesnius bandymo atvejus ir įvertinę kiekvieną iš šių bandymo atvejų, kad sąlygos atitiktų / nepavyktų, galime sukurti kodą be klaidų. Kadangi „Selenium“ nepalaiko kodo vykdymo bandomaisiais atvejais, turime naudoti „TestNG“. Čia „TestNG“ telpa į „Selenium“ sistemą.

TestNG reiškia Išbandykite naujos kartos ir tai yra „JUnit“ ir „NUnit“ įkvėpta atvirojo kodo bandymų automatikos sistema. Na, ne tik įkvėpė, bet ir atnaujino šias dvi sistemas. Taigi galite paklausti, kas čia yra naujovinimas?Atnaujinimas naudojant „TestNG“ suteikia papildomų funkcijų, tokių kaip: testo anotacijos, grupavimas, prioritetų nustatymas, parametrų nustatymas ir sekos nustatymo metodai kode, kurio anksčiau nebuvo įmanoma atlikti.

Be testų atvejų valdymo, naudojant TestNG galima gauti net išsamias testų ataskaitas. Bus pateikta santrauka, kurioje bus parodytas nesėkmingas bandomasis atvejis kartu su grupe, kurios dalimi jis buvo, ir klase, kuriai jis priklauso. Kai klaidas galima tiksliai surasti taip, jas galima nedelsiant pašalinti kūrėjams. Žemiau pateiktame paveikslėlyje pavaizduotas TestNG darbas.

testng - seleno žiniatinklio tvarkyklė

Taigi, kaip „TestNG“ atlieka darbą? Į šį klausimą bus atsakytakitame šio „Selenium WebDriver“ mokymo tinklaraščio skyriuje, kur aptarsiu, kaip valdyti įvairius bandymo atvejus naudojant „TestNG“.

„Selen WebDriver“ su „TestNG“

Testo atvejus galima apibrėžti ir valdyti vienu iš šių būdų:

  1. Išbandykite komentarus
  2. Prioritetų nustatymas
  3. Testinių bylų išjungimas
  4. Metodo priklausomybė
  5. Grupavimas
  6. Tvirtinimai
  7. Ataskaitų generavimas

Leisk man pradėti aiškintikiekviena iš šių funkcijų.

Išbandykite komentarus

Pirmiausia užduokime sau šį klausimą: kodėl turime naudoti anotacijas? Kada mes galime juos naudoti? Seleno anotacijos naudojamos valdyti kitą vykdytiną metodą. Testo anotacijos yra apibrėžtos prieš kiekvieną bandymo kodo metodą. Tuo atveju, jei kuris nors metodas nėra pažymėtas anotacijomis, šis metodas bus ignoruojamas ir nebus vykdomas kaip testo kodo dalis. Norint juos apibrėžti, metodus reikia tiesiog komentuoti „ @Test „. Pavyzdžiui, pažiūrėkite į toliau pateiktą kodo fragmentą.

paketas testng import org.openqa.selenium.WebDriver importuoti org.openqa.selenium.firefox.FirefoxDriver importuoti org.testng.annotations.AfterClass importuoti org.testng.annotations.AfterMethod importuoti org.testng.annotations.BeforeClass importuoti org.testng.annotations .BeforeMethod importuokite org.testng.annotations. Išbandykite viešąją klasę „TestAnnotations“ {@Test public void myTestMethod () {System.out.println ('Inside method: - myTestMethod') WebDriver driver = new FirefoxDriver () driver.get ('http: //www.seleniumframework.com/Practiceform/ ') String title = driver.getTitle () System.out.println (title) driver.quit ()} @BeforeMethod public void beforeMethod () {System.out.println (' Tai kodo dalis vykdoma prieš metodą: - myTestMethod ') System.setProperty (' webdriver.gecko.driver ',' C: UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe ')} @AfterMethod public void afterMethod () {System.out.println (' Šis kūrinys kodo vykdomas po metodo: - myTestMethod ')} @BeforeClass public void beforeClass () {Syste m.out.println ('Šis kodo fragmentas vykdomas prieš vykdant klasę')} @AfterClass public void afterClass () {System.out.println ('Šis kodo fragmentas vykdomas įvykdžius klasę')} }

Ankstesniame kode būtumėte pastebėję, kad neapibrėžiau „pagrindinio“ metodo. Tačiau aš turiu dar 5 apibrėžtus metodus. Jie yra „myTestMethod“, „beforeMethod“, „afterMethod“, „beforeClass“ ir „afterClass“. Taip pat atkreipkite dėmesį į metodų apibrėžimo tvarką kode, nes jie nebus vykdomi ta pačia tvarka.

Metodas „myTestMethod“ yra pažymėtas @Test , ir tai yra pagrindinis metodas arba kodo dalis, kuri turi būti vykdoma. Kiti komentuoti metodai bus vykdomi prieš ir po šio metodo vykdymo. Kadangi „beforeMethod“ yra pažymėtas @BeforeMethod , jis bus vykdomas prieš vykdant „myTestMethod“. Panašiai yra pažymėta „afterMethod“ @PoMetodas , taigi jis bus vykdomas po „myTestMethod“.

Tačiau „beforeClass“ yra pažymėtas @BeforeClass , tai reiškia, kad jis bus vykdomas dar prieš vykdant pačią klasę. Čia yra mūsų klasės pavadinimas „TestAnnotations“ , taigi prieš pradedant vykdyti klasę, bus įvykdytas kodo fragmentas, esantis „beforeClass“. Panašiai yra pažymėta „afterClass“ @PoMetodas ir taip bus įvykdyta po pamokos „TestAnnotations“ yra įvykdytas.

Jei vis dar kyla neaiškumų dėl vykdymo tvarkos, toliau pateiktas fragmentas jums tikrai padės.

1. BeforeSuite 2. BeforeTest 3. BeforeClass 4. BeforeMethod 5. Testas 6. AfterMethod 7. AfterClass 8. AfterTest 9. AfterSuite

Minėto kodo išvestis bus:

Šis kodo fragmentas vykdomas prieš vykdant klasę Šis kodo fragmentas vykdomas prieš metodą: - myTestMethod Inside metodas: - myTestMethod 1493192682118 geckodriver INFO klausymas 127.0.0.1:13676 1493192682713 mozprofile :: profilis INFO Naudojant profilio kelią C: UsersVardhanAofDustLocmoz .wGkcwvwXkl2y 1493192682729 geckodriver :: marionette INFO Naršyklės paleidimas C: Programos failai (x86) „Mozilla Firefoxirefox.exe“ 1493192682729 geckodriver :: marionette INFO Prisijungimas prie „Marionette“ vietiniame kompiuteryje: 59792 [GPU 6152] Pastaba: vamzdžio klaida: ĮSPĖJIMAS: vamzdžio klaida /moz2_slave/m-rel-w32-0000000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346 1493192688316 Marionette INFO Listening on 59792 port 2017 m. balandžio 26 d. 1:14:49 PM org. openqa.selenium.remote.ProtocolHandshake createSession INFO: Aptiktas dialektas: W3C „JavaScript“ klaida: http://t.dtscout.com/i/?l=http%3A%2F%2Fwww.seleniumframework.com%2FPracticeform%2F&j=, eilutė 1: „TypeError“: document.getElementsByTagNa me (...) [0] yra neapibrėžta „Selenium Framework“ Practiceform 1493192695134 „Marionette INFO“ Nauji ryšiai nebebus priimami 2017 m. Balandžio 26 d. 13:14:57 org.openqa.selenium.os.UnixProcess sunaikinti SEVERE: Negalima užmušti proceso naudojant PID 6724. Šis kodo fragmentas vykdomas po metodo: - „myTestMethod“ Šis kodo fragmentas vykdomas po to, kai klasė yra vykdoma IŠĖJTA: myTestMethod ===================================== ============ Numatytasis testas vykdomas: 1, gedimai: 0, praleidimai: 0 ========================== ======================= ============================= ==================== Numatytasis rinkinys Iš viso atliktų bandymų: 1, Gedimai: 0, Praleidimai: 0 =============== ================================

Kaip matote iš pirmiau pateiktos išvesties, atliktų bandymų skaičius yra 1, o nepavykusių - 0. Tai reiškia, kad kodas yra sėkmingas. Netgi metodų vykdymo tvarka bus tokia tvarkaminėta anksčiau.

Kai vykdysite šį kodą savo kompiuteryje, „Selenium WebDriver“ sužinos jūsų „Firefox“ naršyklę, pereis į „Selenium Framework“ praktikos formą, uždarys naršyklės egzempliorių ir parodys tą patį išvestį, kaip parodyta aukščiau jūsų „Eclipse IDE“.

Savo kode naudojau tik 5 skirtingas anotacijas. Tačiau yra daug daugiau anotacijų, kurias galima naudoti kontroliuojant kitą vykdomą metodą. Visas anotacijų sąrašas paaiškintasstaložemiau:

@BeforeSuite - Metodas anotuotas @BeforeSuite bus vykdomi, kol nebus atlikti visi paketo testai.

@AfterSuite - Metodas anotuotas @AfterSuite bus paleisti po to, kai bus atlikti visi paketo testai.

@BeforeTest - Metodas anotuotas @BeforeTest bus vykdomas prieš paleidžiant bet kurį klasei priklausantį bandymo metodą.

@AfterTest - Metodas anotuotas @AfterTest bus paleisti po to, kai bus atlikti visi klasei priklausantys bandymo metodai.

@BeforeGroup - Metodas anotuotas @BeforeGroup veiks prieš kiekvienos grupės paleidimą.

@AfterGroup - Metodas anotuotas @AfterGroup veiks po to, kai bus paleista kiekviena grupė.

@BeforeClass - Metodas anotuotas @BeforeClass bus paleistas vieną kartą prieš pradedant taikyti dabartinės klasės pirmąjį bandymo metodą.

@Po pamokų - Metodas anotuotas @Po pamokų bus paleistas vieną kartą po to, kai bus paleisti visi dabartinės klasės bandymo metodai.

@BeforeMethod - Metodas anotuotas @BeforeMethod bus vykdomas prieš pradedant bandymo metodą klasėje.

@PoMetodas - Metodas anotuotas @PoMetodas bus paleistas po to, kai bus paleisti visi klasėje esantys bandymo metodai.

@Test - Metodas anotuotas @Test yra pagrindinis bandymo metodas visoje programoje. Kiti anotuoti metodai bus vykdomi pagal šį metodą.

„TestNG“ ataskaitos ekrano kopija yrapateikiama žemiau: -

jei sąlyga SQL užklausoje

Prioritetų nustatymas

Mes kalbėjome apie tai, kaip įvairūs metodai gali būti apibrėžti taip, kad jie būtų vykdomi aplink @Test metodas. Bet ką daryti, jei turite daugiau nei vieną @Test metodą ir norite apibrėžti vykdymo tvarką tarp jų?

Tokiu atveju mes galimePrioritizuokite juos priskirdami komentuojamiems testo atvejams numerį. Kuo mažesnis skaičius, tuo didesnis prioritetas. Apibrėžiant bandymo atvejus, kaip parametrai gali būti priskirtas prioritetas. Bet, jei prioritetas nėra priskirtas, anotuoti bandymo metodai bus vykdomi pagal testų abėcėlę. Pažvelkite į bandymo anotacijų parametrus, pateiktus žemiaukodas.

@Test (Priority = 2) public static void FirstTest () {system.out.println ('Tai yra antrasis bandymo atvejis dėl 2-ojo prioriteto')} @Test (Priority = 1) viešasis statinis negaliojantis SecondTest () { system.out.println ('Tai yra 1-asis bandomasis atvejis dėl 1-ojo prioriteto')} @Test public static void FinalTest () {system.out.println ('Tai yra paskutinė bandymo byla, nes nėra prioriteto ' )}

Testinių bylų išjungimas

Leisk man parodyti ką nors įdomesnio. Ką daryti, jei turite kodą, apimantį milijoną eilučių, susidedantį iš šimtų bandymų atvejų, ir norite išjungti tik vieną bandymo metodą? Jums nereikia ištrinti jokios kodo dalies, mes galime tiesiog išjungti tą bandymo metodą.

Testo atvejo išjungimas taip pat atliekamas naudojant parametrus. Mes galime nustatyti įjungtas atributas „netikram“. Pagal numatytuosius nustatymus visi bandymo atvejai bus įgalinti, todėl mums nereikia jų apibrėžti kiekvieną kartą, kai rašome testą. Pažvelkite į trečiojo ir ketvirtojo metodų parametrus, pateiktus žemiaukodas.

@Test (prioritetas = 2, įgalintas = tiesa) public static void FirstTest () {system.out.println ('Tai yra antrasis bandymo atvejis dėl 2-ojo prioriteto')} @Test (prioritetas = 1, įjungtas = tiesa ) public static void SecondTest () {system.out.println ('Tai yra 1-ojo bandomojo atvejo dėl 1-ojo prioriteto')} @Test (įgalinta = klaidinga) public static void SkippedTest () {system.out.println ( 'Tai yra praleistas bandymo atvejis, nes jis buvo išjungtas')} @Test (enabled = True) public static void FinalTest () {system.out.println ('Tai yra paskutinė bandymo byla, kuri įgalinta ir neturi prioriteto ')}

Metodo priklausomybė

Dabar, jei turite situaciją, kai norite, kad kodo dalis būtų vykdoma tik tuo atveju, jei ji tenkina sąlygą arba tik tuo atveju, jei tam tikras metodas sėkmingai vykdomas, tada mes galime tai padaryti naudodami priklauso nuo metodo (). Iš esmės tai yra priklausomybės nuo metodo sąlyga, kai metodas bus vykdomas priklausomai nuo kito metodo. Jei papildomai nustatytume alwaysRun atributas true, tada metodas bus vykdomas nepriklausomai nuo to, kokia yra nepavykusio / tinkamo metodo sąlyga. Pažvelkite į kodą žemiau esančiame kodo fragmente.

@Test public static void FirstTest () {system.out.println ('Tai pirmasis įvykdytas bandomasis atvejis')} @Test (priklausoOnMethods = {'FirstTest'}) public static void SecondTest () {system.out. println ('Tai yra antras bandomasis atvejis, kuris turi būti atliktas. Tai yra priklausomas metodas')} @Test (priklausoOnMethods = {'SecondTest'}) public static void FinalTest () {system.out.println ('Tai paskutinis testas Byla. Vis tiek bus įvykdyta. ')}

Dabar tai nukreipia mus į dar vieną svarbų bandymo aspektąanotacijos, kuri yra Grupavimas .

Grupavimas

Iki šiol turite žinoti, kad kode bus keletas metodų, kaip bandomojo atvejo. Tarkime, kad yra 100 bandymų atvejų, tačiau kitame bandyme norime atlikti tik 20 bandymų atvejų. Ar manote, kad mes galime tai padaryti? Žinoma galime.

Mes galime naudoti grupės atributas šiam tikslui. Mes galime priskirti grupės pavadinimą daugeliui bandymų atvejų ir vėliau pasirinkti vykdyti grupę vietoj viso kodo. Peržiūrėkite toliau pateiktą kodo fragmentą, kad suprastumėtekaip sukurti grupes.

@Test (groups = {'MyGroup'}) public static negalioja FirstTest () {system.out.println ('Tai yra grupės dalis: MyGroup')} @Test (groups = {'MyGroup'}) viešasis statinis void SecondTest () {system.out.println ('Tai taip pat yra grupės dalis: Mano grupė')} @Test public static void ThirdTest () {system.out.println ('Bet tai nėra Grupė: „Mano grupė“)}

TestNG teiginiai

Dabar mes pereisime prie kitos „TestNG“ temos, kuri yra teiginiai. Kaip rodo pavadinimas, teiginiai gali būti naudojami atliekant bandymo metodus, norint nustatyti, ar bandymas įvyko. Remiantis tikra / klaidinga teiginio sąlyga, testai bus sėkmingi / neišlaikyti.

Į žemiau pateiktą kodą įtraukiau 3 bandymo metodus, kur pirmasis ir trečiasis metodai turi sąlygą, o antrasis - nesėkmingą. Pažiūrėkite kodą patys.

paketas testng import org.testng.annotations.Test import org.testng.annotations.BeforeMethod import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.Assert import org.testng.annotations.AfterMethod public class Assertions {@BeforeMethod public void beforeMethod () {System.setProperty ('webdriver.gecko.driver', 'C: UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe')} public Boolean isEqual (int a, int b) {if (a == b ) {return true} else {return false}} @Test public void testEquality1 () {Assert.assertEquals (true, isEqual (10, 10)) System.out.println ('Tai yra tinkama sąlyga')} @Test public void testEquality2 () {Assert.assertEquals (true, isEqual (10, 11)) System.out.println ('Tai yra nesėkmės sąlyga')} @Test public void getTitle () {WebDriver tvarkyklė = nauja „FirefoxDriver ()“ tvarkyklė. get ('https://www.gmail.com') String title = driver.getTitle () Assert.assertEquals (title, 'Gmail') System.out.println ('Tai vėlgi sąlyga')} }

Kai pažvelgsite į ataskaitą, kuri bus sukurta atlikus šį vykdymą, pastebėsite, kad iš trijų testų vienas nepavyko ir du praėjo. Kitas svarbus dalykas, į kurį reikia atkreipti dėmesį, yra tas, kad kai teiginys nepavyksta, kitos to testo komandos / kodo eilutės bus praleistos. Tik tada, kai teiginys bus sėkmingas, tame teste bus vykdoma kita kodo eilutė. Patikrinkite išvestį žemiau, kur system.out.println įvykdė tik pagal pirmąjį ir trečiąjį metodus.

1493277977348 geckodriver INFO klausymasis 127.0.0.1:47035 1493277977993 mozprofile :: profilis INFO Naudojant profilio kelią C: UsersVardhanAppDataLocalTemp ust_mozprofile.Z7X9uFdKODvi 1493277977994 naršyklė geckodriveres :: marionette INFO :: Marionette INFO :: Marionette INFO Prisijungimas prie „Marionette“ vietiniame kompiuteryje: 50758 [GPU 6920] ĮSPĖJIMAS: vamzdžio klaida: 109: failas c: / builds / moz2_slave / m-rel-w32-000000000000000000000000 / build / src / ipc / chromium / src / chrome / common / ipc_channel_win. cc, line 346 1493277981742 „Marionette INFO“ Klausymasis uoste 50758, 2017 m. balandžio 27 d. 12:56:22, org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Aptikta tarmė: W3C Tai vėl perėjimo sąlyga. getTitle PASSED: testEquality1 FAILED: testEquality2 java.lang.AssertionError: tikėtinas [klaidingas], bet rastas [tiesa] adresu org.testng.Assert.fail (Assert.java:93) org.testng.Assert.failNotEquals (Assert.java: 512) org.testng.Assert.assertE qualsImpl (Assert.java:134) org.testng.Assert.assertEquals (Assert.java:115) org.testng.Assert.assertEquals (Assert.java:304) org.testng.Assert.assertEquals (Assert.java) : 314) adresu testng.Assertions.testEquality2 (Assertions.java:38) sun.reflect.NativeMethodAccessorImpl.invoke0 (vietinis metodas) sun.reflect.NativeMethodAccessorImpl.invoke (nežinomas šaltinis) svetainėje sun.reflect.DelegatingMethod Šaltinis) adresu java.lang.reflect.Method.invoke (nežinomas šaltinis) adresu org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) adresu org.testng.internal.Invoker.invokeMethod (Invoker.java:66) adresu org.testng.internal.Invoker.invokeTestMethod (Invoker.java:869) org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1193) adresu org.testng.internal.TestMethodWorker.invokeTestMethods (( ) adresu org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) adresu org.testng.TestRunner.privateRun (TestRunner.java:744) adresu org.testng.TestRu nner.run (TestRunner.java:602) org.testng.SuiteRunner.runTest (SuiteRunner.java:380) adresu org.testng.SuiteRunner.runSequential (SuiteRunner.java:375) org.testng.SuiteRunner.privateRun (SuiteRunn .java: 340) „org.testng.SuiteRunner.run“ („SuiteRunner.java:289“) „org.testng.SuiteRunnerWorker.runSuite“ („SuiteRunnerWorker.java:52“) „org.testng.SuiteRunnerWorker.run“ („SuiteRunnerWorker.ja“). at org.testng.TestNG.runSuitesSequential (TestNG.java:1301) at org.testng.TestNG.runSuitesLocally (TestNG.java:1226) at org.testng.TestNG.runSuites (TestNG.java:1144) at org.testng. „TestNG.run“ („TestNG.java:1115“) adresu org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:132) adresu org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:230) adresu org.testng .RemoteTestNG.main („RemoteTestNG.java:76“) ======================================= ======== Numatytasis testas vykdomas: 3, gedimai: 1, praleidimai: 0 ============================== =================== ================================= ================ Numatytasis rinkinys Iš viso atliktų bandymų: 3, Gedimai: 1, Praleidimai: 0 ===================================== ============

Taigi, tuo baigiasi sąvokos, susijusios su bandomųjų atvejų valdymu. Mums lieka dar viena tema, tai yra ataskaitų generavimas. Ataskaitų generavimas yra paskutinė šios „Selenium WebDriver“ mokymo programos tema, nes ataskaitas galima kurti tik po visųtestai vykdomi.

paversti dvigubai į int java

Ataskaitų generavimas

Svarbiausia, ką reikia atkreipti dėmesį į tai, kad ataskaita bus sukurta tik per .xml failą. Tai reiškia, ar tai būtų metodas, ar klasė, ar grupė, kurią norite išbandyti, visi jie turi būti nurodyti .xml faile.

Taigi pirmiausia galite sukurti naują aplanką pagal savo projektą ir sukurti naują failą tame aplanke, suteikti failui pavadinimą ir išsaugoti jį su plėtiniu .xml. Galite sukurti naują aplanką ir failą dešiniuoju pelės mygtuku spustelėdami paketų naršyklę. Sukūrę failą, lango apačioje eikite į skirtuką šaltinis ir įveskite konfigūracijas, nurodytas žemiau esančiame fragmente.

 

Pirmoji eilutė yra XML dokumento tipo apibrėžimas. Tai yra standartinė ir privaloma visoms bandymų ataskaitoms. Tačiau kitos eilutės yra savaime suprantamos. Aš naudojau atviras žymas rinkiniams, testams, klasėms ir klasėms. „Classes“ žymoje gali būti viena ar daugiau klasių. Taigi jį galima naudoti, jei norime sukurti ataskaitą, kurioje bandome kelias klases. Tai ypač patogu kūrėjams, norintiems išbandyti ilgą kodo dalį.

Bet kokiu atveju grįžtant prie mūsų ataskaitos, atidarius tas žymas, galite pavadinti kiekvieną rinkinį, testą ar klasę ir nepamiršti uždaryti kiekvieną atidarytą žymą. Aš suteikiau savo apartamentų pavadinimą kaip TestNG , bandymo pavadinimas kaip Testas Anotacijos ir klasės pavadinimas kaip testng.TestAnnotations. Atkreipkite dėmesį, kad klasės pavadinimas yra ' packagename.classname “ .

Kai paleisite šį failą kaip „TestNG suite“, vykdymas prasidės ir gausite išsamias bandymų ataskaitas. Testavimo išvestį gausite savo konsolės skirtuke, o kitame skirtuke - testo paketo rezultatą. Ataskaita, kurią sugeneravau savo kodui vykdyti, yraįžemiau pateiktą ekrano kopiją. Jūs pastebėsite, kad šį kartą yra paketo pavadinimas, testo pavadinimas, klasės pavadinimas ir laikas, kurio reikia kiekvienam iš jų įvykdyti.

Jei norite peržiūrėti HTML ataskaitą (indekso ataskaita arba el. Paštu siunčiama ataskaita), galite pereiti į test-output aplanką projekto kataloge jūsų darbo srityje. Spustelėję juos, ataskaitas galite peržiūrėti net vėliau. Žemiau pateikiamos jų ekrano kopijos.

Rodyklės ataskaita : -

Atsiųsti el. Paštu : -

Taigi, mes pateksime į šio „Selenium WebDriver“ mokymo tinklaraščio pabaigą. Atėjo laikas jums nustatyti užtemimą, įdiegti įvairius „Selenium“ paketus, įdiegti „TestNG“ ir pradėti rašyti bandomuosius atvejus.

Galite pamatyti žemiau pateiktą „Selenium WebDriver“ mokomąjį vaizdo įrašą, kad pamatytumėte įvairias šiame tinklaraštyje paaiškintas sąvokas.

Seleno mokymai Seleno testNG sistema Edureka

Šis „Edureka Selenium Training“ vaizdo įrašas pateiks išsamią „Selenium WebDriver“ informaciją. Šis „Selenium“ mokomasis vaizdo įrašas idealiai tinka pradedantiesiems ir profesionalams, norintiems patobulinti „WebDriver“ komandų pagrindus ir sužinoti, kaip „TestNG“ galima naudoti kartu su „Selenium“ valdant įvairius bandymo atvejus.

Jei norite išmokti seleno ir kurti karjerą bandymų srityje, peržiūrėkite mūsų interaktyvų internetą čia yra 24 * 7 palaikymas, kuris padės jums mokytis.

Turite mums klausimą? Prašau paminėti tai komentarų skiltyje ir mes su jumis susisieksime.