TestNG @Test Prioritás a szelénben

Tartalomjegyzék:

Anonim

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.

  1. Azonos prioritású értékek.
  2. 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