„TestNG“ yra testavimo sistema, apimanti įvairius bandymų modelius, tokius kaip vieneto testas, funkcinis testas, testas nuo pabaigos iki galo, vartotojo sąsajos testas ir integracijos testas.
Testng kode galite paleisti vieną ar kelis bandymo atvejus.
Jei bandymo prioritetas nėra apibrėžtas vykdant kelis bandymo atvejus, TestNG priskiria visus @Test prioritetus kaip nulį (0).
Dabar, bėgdamas; pirmiausia bus numatyti žemesni prioritetai.
Šioje pamokoje sužinosite -
- „TestNG“ kodo be prioriteto demonstracija
- „TestNG“ kodo be prioriteto demonstravimas abėcėlės tvarka
- Kaip nustatyti „TestNG“ prioritetą
- Metodai su tuo pačiu prioritetu
- Derinant prioritetinius (turinčius tą patį prioritetą) ir neprioritetinius metodus
„TestNG“ kodo be prioriteto demonstracija
Paimkime scenarijų, kuriame reikės sekos, norint išlaikyti visus bandymo atvejus:
Scenarijus: sugeneruokite kodą, kuriame jums reikia atlikti „Google“ paiešką su konkrečiu raktiniu žodžiu „Facebook“. Dabar patikrinkite, ar naršyklės pavadinimas pakeistas į „Facebook -„ Google “paieška“.
Pastaba: kiekvienas koduojamas veiksmas turėtų būti atliekamas atskirais metodais
1 metodas : atidarykite naršyklę, tarkime, „Firefox“ („openBrowser“)
2 metodas : paleiskite Google.com (launchGoogle ())
3 metodas : atlikite paiešką naudodami „Facebook“ (atlikiteSearchAndClick1stLink ())
4 metodas : patikrinkite „Google“ paieškos puslapio pavadinimą („FaceBookPageTitleVerification“)
Mūsų scenarijaus kodas :
importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;importuoti org.testng.Assert;importuoti org.testng.annotations.Test;viešoji klasė „Priority_In_testNG“„WebDriver“ tvarkyklė;// 1 metodas: atidarykite „Brower“, tarkime, „Firefox“@Testpublic void openBrowser () {tvarkyklė = new FirefoxDriver ();}// 2 metodas: paleiskite Google.com@Testpublic void launchGoogle () {driver.get ("http://www.google.co.in");}// 3 metodas: atlikite paiešką naudodami „Facebook“@Testpublic void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Paieška']")). sendKeys („Facebook“);}// 4 metodas: patikrinkite „Google“ paieškos puslapio pavadinimą.@Testpublic void „FaceBookPageTitleVerification“ () išmeta išimtį {driver.findElement (By.xpath (".//*[@ value = 'Ieškoti']")). spustelėkite ();Siūlas.miega (3000);„Assert.assertEquals“ (driver.getTitle (). Yra („Facebook“ - „Google“ paieška “), tiesa);}}
Kodo paaiškinimas
Kaip minėta pirmiau, mes sukūrėme 4 bandymo atvejus kiekvienam veiksmui atlikti nepriklausomais metodais.
- Pirmasis metodas („openBrowser“) nurodo inicijuoti „Firefox“ naršyklę.
- Antrasis metodas („launchGoogle“) nurodo, kad „Google.com“ paleidimas yra inicializuotoje naršyklėje.
- Trečiasis metodas (peformSeachAndClick1stLink) teigia, kad paieškos laukelyje atlieka paiešką (su „xpath“ („.//*[@title='Search“] “) su paieškos terminu„ Facebook “ ir
- Ketvirtasis ir paskutinis metodas („FaceBookPageTitleVerification“) nurodo, kad spustelėkite „Google“ paieškos piktogramą ir patikrinkite, ar naršyklės pavadinimas pakeistas į „ Facebook“ - „Google“ paiešką.
Dabar paleiskite šį kodą naudodami testNG, kaip parodyta vaizdo įraše, nes visi bandymo atvejai nepavyksta. Nesėkmės priežastis: kadangi praeinantis ankstesnis bandymo atvejis priklauso, bus perduodama tik dabartinio bandymo atvejis.
Tokiu atveju,
- Pirmasis vykdomas metodas yra openBrowser (). Jis praėjo, nes neturi jokios priklausomybės.
- Antrasis vykdomas metodas yra „ FaceBookPageTitleVerification“ (); tai nepavyksta, nes bandome spustelėti paieškos mygtuką ir patikrinti naršyklės pavadinimą.
- Galite pastebėti, kad jei paieškos veikla nėra apdorojama, kaip galima atlikti kitus veiksmus. Taigi, tai yra priežastis, dėl kurios mano bandomieji atvejai yra nesėkmingi.
PERĖTA: „openBrowser“NEPAVYKO: „FaceBookPageTitleVerification“NEPAVYKO: paleiskite „Google“NEPAVYKO: peformSeachAndClick1stLink
„TestNG“ kodo be prioriteto demonstravimas abėcėlės tvarka
Jei neminėsime jokio prioriteto, „testng“ vykdys „@Test“ metodus, remdamiesi jų metodų pavadinimų abėcėlės tvarka, neatsižvelgiant į jų įdiegimo vietą kode.
paketas com.guru.testngannotations;importuoti org.testng.annotations.Test;viešoji klasė „TestNG_Priority_Annotations“@Testpublic void c_method () {System.out.println („Aš naudoju C metodą“);}@Testpublic void b_method () {System.out.println ("Aš esu B metodo");}@Testpublic void a_method () {System.out.println ("Aš esu A metodo");}@Testpublic void e_method () {System.out.println („Aš naudoju E metodą“);}@Testpublic void d_method () {System.out.println ("Aš esu D metodo");}}
Rezultatas
Aš esu A metodoAš naudoju B metodąAš naudoju C metodąMan taikomas D metodasAš naudoju E metodą
Nors mes metodus apibrėžėme atsitiktinai (c, b, a, e, d), testng atliko metodus pagal jų metodų pavadinimus atsižvelgdami į abėcėlės tvarka, ir tai atsispindėjo išvestyje.
Kaip nustatyti „TestNG“ prioritetą
Kaip matėte ankstesniame pavyzdyje, norint sekti šį scenarijų reikia sekos, todėl ankstesnį kodo elementą modifikuosime naudodami prioriteto parametrą , kad kiekvienas testas atitiktų jiems priskirtą prioritetą.
Dabar, kaip matote, kiekvienam bandymo atvejui priskyrėme prioritetą, tai reiškia, kad pirmiausia bus vykdoma mažesnė prioriteto reikšmė.
Prioritetas testNG veikiant
importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;importuoti org.testng.Assert;importuoti org.testng.annotations.Test;viešoji klasė „Priority_In_testNG“„WebDriver“ tvarkyklė;// 1 metodas: atidarykite naršyklę, tarkime, „Firefox“@Test (prioritetas = 1)public void openBrowser () {tvarkyklė = new FirefoxDriver ();}// 2 metodas: paleiskite Google.com@Test (prioritetas = 2)public void launchGoogle () {driver.get ("http://www.google.co.in");}// 3 metodas: atlikite paiešką naudodami „Facebook“@Test (prioritetas = 3)public void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Paieška']")). sendKeys („Facebook“);}// 4 metodas: patikrinkite „Google“ paieškos puslapio pavadinimą.@Test (prioritetas = 4)public void „FaceBookPageTitleVerification“ () išmeta išimtį {driver.findElement (By.xpath (".//*[@ value = 'Ieškoti']")). spustelėkite ();Siūlas.miega (3000);„Assert.assertEquals“ (driver.getTitle (). Yra („Facebook“ - „Google“ paieška “), tiesa);}}
Kodo paaiškinimas
Priskyrę prioritetą kiekvienai bandymo bylai, paleiskite aukščiau nurodytą kodą naudodami testNG, kaip parodyta toliau minėtame „Video-2“.
Čia galite pamatyti, kad bandomiesiems atvejams teikiama pirmenybė. Pirmiausia atliekami mažesnio prioriteto bandomieji atvejai, ty dabar bandymai atliekami nuosekliai pagal prioritetą. Taigi visi bandomieji atvejai dabar praeina.
Atkreipkite dėmesį į užtemimo konsolę:
Išvestis :
PERĖTA: „openBrowser“ATLIKTA: paleiskite „Google“ATLIKTA: „peformSearchAndClick1stLink“ATLIKTA: „FaceBookPageTitleVerification“
Skaičius 0 turi didžiausią prioritetą (jis bus įvykdytas pirmas), o prioritetas eina pagal nurodytą skaičių, ty 0 turi didžiausią prioritetą nei 1. 1 turi aukščiausią prioritetą nei 2 ir pan.
paketas com.guru.testngannotations;importuoti org.testng.annotations.Test;viešoji klasė „TestNG_Priority_Annotations“@Test (prioritetas = 6)public void c_method () {System.out.println („Aš naudoju C metodą“);}@Test (prioritetas = 9)public void b_method () {System.out.println ("Aš esu B metodo");}@Test (prioritetas = 1)public void a_method () {System.out.println ("Aš esu A metodo");}@Test (prioritetas = 0)public void e_method () {System.out.println („Aš naudoju E metodą“);}@Test (prioritetas = 3)public void d_method () {System.out.println ("Aš esu D metodo");}}
Rezultatas
Aš naudoju E metodąAš esu A metodoMan taikomas D metodasAš naudoju C metodąAš naudoju B metodą
Čia mes nurodėme prioritetus kaip 0,1,3,6,9. Taigi, pirmiausia vykdomas metodas, kurio prioritetas yra 0, o tada metodas, kurio prioritetas yra 1 ir pan. Abėcėlės tvarka metodo pavadinimas nebus vertinamas, nes pateikėme prioritetus
Metodai su tuo pačiu prioritetu:
Gali būti tikimybė, kad metodai gali turėti tą patį prioritetą. Tais atvejais „testng“ atsižvelgia į metodų pavadinimų, kurių prioritetas yra tas pats, abėcėlės tvarka.
paketas com.guru.testngannotations;importuoti org.testng.annotations.Test;viešoji klasė „TestNG_Priority_Annotations“@Test (prioritetas = 6)public void c_method () {System.out.println („Aš naudoju C metodą“);}@Test (prioritetas = 9)public void b_method () {System.out.println ("Aš esu B metodo");}@Test (prioritetas = 6)public void a_method () {System.out.println ("Aš esu A metodo");}@Test (prioritetas = 0)public void e_method () {System.out.println („Aš naudoju E metodą“);}@Test (prioritetas = 3)public void d_method () {System.out.println ("Aš esu D metodo");}}
Rezultatas
Aš naudoju E metodąMan taikomas D metodasAš esu A metodoAš naudoju C metodąAš naudoju B metodą
Čia „e“ ir „d“ vykdomos pagal jų prioritetines reikšmes. Tačiau metoduose „a“ ir „c“ yra ta pati prioriteto reikšmė (6). Taigi, čia testng atsižvelgia į abėcėlės „a“ ir „c“ tvarką ir jas atitinkamai vykdo.
Derinant prioritetinius (turinčius tą patį prioritetą) ir neprioritetinius metodus:
Tokiu atveju aptarsime du atvejus vienoje testng klasėje.
- Metodai, turintys tą pačią prioriteto vertę.
- Ne vienas prioritetinis metodas.
paketas com.guru.testngannotations;importuoti org.testng.annotations.Test;viešoji klasė „TestNG_Priority_Annotations“@Test ()public void c_method () {System.out.println („Aš naudoju C metodą“);}@Test ()public void b_method () {System.out.println ("Aš esu B metodo");}@Test (prioritetas = 6)public void a_method () {System.out.println ("Aš esu A metodo");}@Test (prioritetas = 0)public void e_method () {System.out.println („Aš naudoju E metodą“);}@Test (prioritetas = 6)public void d_method () {System.out.println ("Aš esu D metodo");}}
Išvestis:
Aš naudoju B metodąAš naudoju C metodąAš naudoju E metodąAš esu A metodoMan taikomas D metodas
ATLIKTA: b_metodasPATIKRINTA: c_metodasATLIKTA: e_metodasATLIKTA: a_metodasATLIKTA: d_metodas
Paaiškinimas:
Pirmoji pirmenybė: Neprioritetiniai metodai: „c“ ir „b“: Abėcėlės tvarka pirmiausia įvykdyta „b“, o vėliau - „c“.
Antroji pirmenybė: Prioritetiniai metodai: „a“, „e“ ir „d“: „e“ buvo įvykdytas pirmiausia, nes jis turėjo aukščiausią prioritetą (0). Kadangi „a“ ir „d“ metodų prioritetas buvo tas pats, testng svarstė abėcėlinę jų metodų pavadinimų tvarką. Taigi tarp jų pirmiausia buvo įvykdytas „a“, o po to - „d“.
Skirtingos didžiosios ir mažosios raidės naudojant TestNG
Jūsų informacijai yra standartinė sintaksė apibrėžiant prioritetą „testNG“, ty „ @Test“ (prioritetas = 4) . Tarkime, jūs jį apibrėžiate kitoje sintaksėje, tarkim, „ @Test“ (PRIORITETAS = 1), tada jūsų IDE parodys ją kaip kompiliavimo klaidą . Žiūrėkite žemiau esantį vaizdą:
Išvada:
Kaip matėte, jei yra reikalavimas paleisti bandymų rinkinį konkrečia seka, tai galima lengvai padaryti naudojant „ Priority“, naudojant „testNG“ kaip paleidimo įrankį.
Ši pamoka yra įmanoma dėl Ramandeepo Singho ir Ramos Krišnos Gadde indėlio