A TestNG egy tesztelési keretrendszer, amely különböző típusú tesztterveket fed le, mint például az egység tesztet, a funkcionális tesztet, a végponttól végig tesztelést, az UI tesztet és az integrációs tesztet.
Egy vagy több tesztesetet futtathat a Testng kódban.
Ha a tesztprioritás nincs meghatározva, miközben több tesztesetet futtat, a TestNG az összes @Test prioritást nullának (0) rendeli.
Most futás közben; először alacsonyabb prioritásokat ütemeznek.
Ebben az oktatóanyagban megtudhatja -
- A TestNG kód bemutatása prioritás nélkül
- A TestNG kód bemutatása prioritás nélkül ábécé sorrendben
- A TestNG prioritásának beállítása
- Módszerek azonos prioritással
- Prioritizált (azonos prioritású) és nem prioritizált módszerek kombinálása
A TestNG kód bemutatása prioritás nélkül
Vegyünk egy forgatókönyvet, ahol szekvenciára lesz szükség az összes teszteset átadásához:
Forgatókönyv: Hozzon létre egy kódot, ahol el kell végeznie a Google keresést egy adott kulcsszóval, mondván: "Facebook". Most ellenőrizze, hogy a böngésző címe "Facebook - Google Keresés" -re változott-e.
Megjegyzés: Minden kódolt lépésnek különálló módszerekkel kell történnie
1. módszer : Nyissa meg a böngészőt, mondjuk a Firefox (openBrowser ())
2. módszer : Indítsa el a Google.com oldalt (launchGoogle ())
3. módszer : végezzen keresést a "Facebook" használatával (performSearchAndClick1stLink ())
4. módszer : A Google keresési oldal címének ellenőrzése (FaceBookPageTitleVerification ())
Forgatókönyvünk kódja :
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;nyilvános osztály Priority_In_testNG {WebDriver illesztőprogram;// 1. módszer: Nyissa meg a Brower-t, mondjuk a Firefox@Tesztpublic void openBrowser () {illesztőprogram = new FirefoxDriver ();}// 2. módszer: Indítsa el a Google.com oldalt@Tesztpublic void launchGoogle () {driver.get ("http://www.google.co.in");}// 3. módszer: végezzen keresést a "Facebook" használatával@Tesztpublic void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Keresés']")). sendKeys ("Facebook");}// 4. módszer: Ellenőrizze a Google keresési oldal címét.@Tesztpublic void A FaceBookPageTitleVerification () dobja a Kivételt {driver.findElement (By.xpath (".//*[@ value = 'Keresés']")). kattintson ();Szál.alszik (3000);Assert.assertEquals (driver.getTitle (). Tartalmazza ("Facebook - Google Search"), true);}}
A kód magyarázata
Mint fent említettük, 4 tesztesetet hoztunk létre az egyes műveletek független módszerekkel történő végrehajtására.
- Az első módszer (openBrowser) a Firefox böngésző inicializálását írja elő.
- A második módszer (launchGoogle) szerint a Google.com elindítása az inicializált böngészőben található.
- A harmadik módszer (peformSeachAndClick1stLink) azt állítja, hogy a keresőmezőben keresést hajt végre (az xpath (".//*[@title='Search ']" "kifejezéssel) egy keresési kifejezéssel Facebook és
- A negyedik és egyben utolsó módszer (FaceBookPageTitleVerification) szerint a Google keresési ikonjára kattintva ellenőrizzük, hogy a böngésző címe megváltozott-e a Facebook - Google Search névre .
Most futtassa ezt a kódot a testNG használatával, amint az a videóban látható. A kudarc oka: mivel a korábbi tesztesetek függősége átmegy, csak a jelenlegi futó teszteset kerül átadásra.
Ebben az esetben,
- Az első végrehajtott módszer az openBrowser (). Elhaladt, mert nincs semmiféle függősége.
- A második végrehajtott módszer a FaceBookPageTitleVerification (); nem sikerül, mert megpróbálunk kattintani a keresés gombra és ellenőrizzük a böngésző címét.
- Láthatja, hogy ha a keresési tevékenység nem folyamatban van, akkor hogyan léphet át bármely más lépés. Ezért a teszteseteim kudarcot vallanak.
PASSED: openBrowserSIKERTELEN: FaceBookPageTitleVerificationSIKER: launchGoogleSIKERTELEN: peformSeachAndClick1stLink
A TestNG kód bemutatása prioritás nélkül ábécé sorrendben
Ha nem említünk prioritást, a testng a @Test metódusokat a metódusneveik ábécé sorrendje alapján hajtja végre, függetlenül a kódban való megvalósítás helyétől.
csomag com.guru.testngannotations;import org.testng.annotations.Test;nyilvános osztály TestNG_Priority_Annotations {@Tesztpublic void c_method () {System.out.println ("A C módszerben vagyok");}@Tesztpublic void b_method () {System.out.println ("A B módszerben vagyok");}@Tesztpublic void a_method () {System.out.println ("Az A módszerben vagyok");}@Tesztpublic void e_method () {System.out.println ("Az E módszerben vagyok");}@Tesztpublic void d_method () {System.out.println ("A D módszerben vagyok");}}
Kimenet
Az A módszerben vagyokA B módszerben vagyokA C módszerben vagyokA D módszerben vagyokAz E módszerben vagyok
Habár véletlenszerűen definiáltuk a módszereket (c, b, a, e, d), a testng a módszerek neveik alapján hajtotta végre, figyelembe véve az ábécé sorrendjét, és ugyanez tükröződött a kimenetben is.
A TestNG prioritásának beállítása
Amint az előző példában láthattad, hogy a szekvenálás szükséges ennek a forgatókönyvnek a teljesítéséhez, ezért az előző kóddarabot a Prioritás Paraméterrel módosítjuk , hogy minden teszt a nekik rendelt prioritással futjon.
Amint láthatja, minden tesztesethez hozzárendeltük a prioritást, azt jelenti, hogy a teszteset az alacsonyabb prioritású értéket hajtja végre először.
Prioritás a testNG működésében
import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;nyilvános osztály Priority_In_testNG {WebDriver illesztőprogram;// 1. módszer: Nyissa meg a böngészőt, mondjuk a Firefoxot@Test (prioritás = 1)public void openBrowser () {illesztőprogram = new FirefoxDriver ();}// 2. módszer: Indítsa el a Google.com oldalt@Test (prioritás = 2)public void launchGoogle () {driver.get ("http://www.google.co.in");}// 3. módszer: végezzen keresést a "Facebook" használatával@Test (prioritás = 3)public void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Keresés']")). sendKeys ("Facebook");}// 4. módszer: Ellenőrizze a Google keresési oldal címét.@Teszt (prioritás = 4)public void A FaceBookPageTitleVerification () dobja a Kivételt {driver.findElement (By.xpath (".//*[@ value = 'Keresés']")). kattintson ();Szál.alszik (3000);Assert.assertEquals (driver.getTitle (). Tartalmazza ("Facebook - Google Search"), true);}}
A kód magyarázata
Miután az egyes tesztesetekhez prioritást rendelt, futtassa a fenti kódot a testNG használatával, az alább említett Video-2 szerint.
Itt láthatja, hogy a tesztesetek prioritást élveznek. Az alacsonyabb prioritású teszteseteket hajtják végre először, vagyis most a prioritásoknak megfelelő szekvenciális végrehajtás van a tesztesetekben. Ezért most minden teszteset elmúlik.
Vegye figyelembe a napfogyatkozás konzolját:
Kimenet :
PASSED: openBrowserPASSED: launchGooglePASSED: peformSearchAndClick1stLinkPASSED: FaceBookPageTitleVerification
A 0-as számnak van a legmagasabb prioritása (először végrehajtásra kerül), és a prioritás a megadott szám alapján megy tovább, vagyis a 0-nak van a legnagyobb prioritása, mint 1-nek. 1-nek a legmagasabb prioritása van, mint 2-nek, és így tovább.
csomag com.guru.testngannotations;import org.testng.annotations.Test;nyilvános osztály TestNG_Priority_Annotations {@Test (prioritás = 6)public void c_method () {System.out.println ("A C módszerben vagyok");}@Teszt (prioritás = 9)public void b_method () {System.out.println ("A B módszerben vagyok");}@Test (prioritás = 1)public void a_method () {System.out.println ("Az A módszerben vagyok");}@Test (prioritás = 0)public void e_method () {System.out.println ("Az E módszerben vagyok");}@Test (prioritás = 3)public void d_method () {System.out.println ("A D módszerben vagyok");}}
Kimenet
Az E módszerben vagyokAz A módszerben vagyokA D módszerben vagyokA C módszerben vagyokA B módszerben vagyok
Itt a prioritásokat 0,1,3,6,9-nek adtuk meg. Tehát először a 0 prioritású módszert hajtjuk végre, majd az 1 prioritású módszert és így tovább. A betűrend szerinti sorrend metódusát nem vesszük figyelembe, mivel mi adtuk meg a prioritásokat
Módszerek azonos prioritással:
Lehetséges, hogy a módszerek azonos prioritást tartalmazhatnak. Ezekben az esetekben a testng figyelembe veszi az azonos prioritású metódusnevek ábécé sorrendjét.
csomag com.guru.testngannotations;import org.testng.annotations.Test;nyilvános osztály TestNG_Priority_Annotations {@Test (prioritás = 6)public void c_method () {System.out.println ("A C módszerben vagyok");}@Teszt (prioritás = 9)public void b_method () {System.out.println ("A B módszerben vagyok");}@Test (prioritás = 6)public void a_method () {System.out.println ("Az A módszerben vagyok");}@Test (prioritás = 0)public void e_method () {System.out.println ("Az E módszerben vagyok");}@Test (prioritás = 3)public void d_method () {System.out.println ("A D módszerben vagyok");}}
Kimenet
Az E módszerben vagyokA D módszerben vagyokAz A módszerben vagyokA C módszerben vagyokA B módszerben vagyok
Itt az 'e' és 'd' prioritási értékeik alapján kerül végrehajtásra. De az 'a' és a 'c' módszer ugyanazt a prioritási értéket tartalmazza (6). Tehát itt a testng az „a” és „c” betűrendjét veszi figyelembe, és ennek megfelelően hajtja végre őket.
Prioritizált (azonos prioritású) és nem prioritizált módszerek kombinálása:
Ebben az esetben két esetet tárgyalunk egy testng osztályban.
- Azonos prioritású értékek.
- Több nem prioritás nélküli módszer.
csomag com.guru.testngannotations;import org.testng.annotations.Test;nyilvános osztály TestNG_Priority_Annotations {@Teszt()public void c_method () {System.out.println ("A C módszerben vagyok");}@Teszt()public void b_method () {System.out.println ("A B módszerben vagyok");}@Test (prioritás = 6)public void a_method () {System.out.println ("Az A módszerben vagyok");}@Test (prioritás = 0)public void e_method () {System.out.println ("Az E módszerben vagyok");}@Test (prioritás = 6)public void d_method () {System.out.println ("A D módszerben vagyok");}}
Kimenet:
A B módszerben vagyokA C módszerben vagyokAz E módszerben vagyokAz A módszerben vagyokA D módszerben vagyok
ÁTOTT: b_módszerMEGTETT: c_methodÁTOTT: e_metódusÁTOTT: a_metódusÁTOTT: d_metódus
Magyarázat:
Első preferencia: Nem prioritizált módszerek: „c” és „b”: ábécé sorrendje alapján először a „b”, majd a „c” végrehajtása történt meg.
Második preferencia: Prioritizált módszerek: „a”, „e” és „d”: Az „e” -t hajtották végre először, mivel ennek volt a legnagyobb prioritása (0). Mivel az „a” és „d” módszerek prioritása azonos volt, a testng a neveik ábécé sorrendjét vette figyelembe. Tehát közöttük először „a” -t hajtottak végre, majd „d” -t.
Kis- és nagybetűk a TestNG-ben
Csak tájékoztatásul van egy szabványos szintaxist meghatározó prioritást testng azaz @Test (priority = 4) , tegyük fel, hogy meghatározzák, hogy valamilyen más szintaktikai mondani @Test (priority = 1) , akkor az IDE fog mutatni, mint egy fordítási hibát . Lásd az alábbi képet:
Következtetés:
Mint látta, hogy ha követelmény a tesztesetek sorozatának meghatározott sorrendben történő futtatása, akkor ez könnyen elvégezhető a Priority használatával a testNG használatával futtatási eszközként.
Ez az oktatóanyag Ramandeep Singh és Rama Krishna Gadde közreműködésével lehetséges