TestNG ir testēšanas ietvars, kas aptver dažāda veida testus, piemēram, vienības testu, funkcionālo testu, gala līdz galam testu, lietotāja saskarnes testu un integrācijas testu.
Testng kodā varat palaist vienu vai vairākus testa gadījumus.
Ja testa prioritāte nav definēta, vienlaikus izpildot vairākus testa gadījumus, TestNG piešķir visām @Test prioritātēm nulli (0).
Tagad, skrienot; vispirms tiks noteiktas zemākas prioritātes.
Šajā apmācībā jūs uzzināsiet -
- TestNG koda demonstrācija bez prioritātes
- TestNG koda demonstrācija bez prioritātes alfabētiskā secībā
- Kā iestatīt prioritāti TestNG
- Metodes ar tādu pašu prioritāti
- Apvienojot gan prioritātes (kurām ir vienāda prioritāte), gan prioritātes nesaistītas metodes
TestNG koda demonstrācija bez prioritātes
Pieņemsim scenāriju, kurā secība būs nepieciešama, lai nokārtotu visus testa gadījumus:
Scenārijs: ģenerējiet kodu, kur jums jāveic Google meklēšana, izmantojot noteiktu atslēgvārdu “Facebook”. Tagad pārbaudiet, vai pārlūkprogrammas nosaukums ir mainīts uz “Facebook - Google meklēšana”.
Piezīme: Katram kodētajam solim jābūt atsevišķām metodēm
1. metode : Atveriet pārlūku, teiksim, Firefox (openBrowser ())
2. metode : palaidiet vietni Google.com (launchGoogle ())
3. metode : veiciet meklēšanu, izmantojot “Facebook” (performSearchAndClick1stLink ())
4. metode : pārbaudiet Google meklēšanas lapas virsrakstu (FaceBookPageTitleVerification ())
Mūsu scenārija kods :
importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.testng.Assert;importēt org.testng.annotations.Test;publiskā klase Priority_In_testNG {WebDriver draiveris;// 1. metode: atveriet programmu Brower, teiksim, Firefox@Pārbaudepublic void openBrowser () {draiveris = jauns FirefoxDriver ();}// 2. metode: palaidiet vietni Google.com@Pārbaudepublic void launchGoogle () {driver.get ("http://www.google.co.in");}// 3. metode: veiciet meklēšanu, izmantojot "Facebook"@Pārbaudepublic void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Meklēt']")). sendKeys ("Facebook");}// 4. metode: pārbaudiet Google meklēšanas lapas nosaukumu.@Pārbaudepublic void FaceBookPageTitleVerification () met izņēmumu {driver.findElement (By.xpath (".//*[@ value = 'Meklēt']")). noklikšķiniet ();Vītne.miegs (3000);Assert.assertEquals (draiveris.getTitle (). Satur ("Facebook - Google meklēšana"), patiess);}}
Kodeksa skaidrojums
Kā minēts iepriekš, mēs esam izveidojuši 4 testa gadījumus katras darbības veikšanai ar neatkarīgām metodēm.
- Pirmā metode (openBrowser) norāda, ka inicializēt Firefox pārlūku.
- Otrā metode (launchGoogle) norāda, ka Google.com palaišana ir inicializētā pārlūkprogrammā.
- Trešā metode (peformSeachAndClick1stLink) norāda, ka meklēšanas lodziņā veic meklēšanu (ar xpath (".//*[@title='Search ']") ar meklēšanas vienumu Facebook un
- Ceturtajā un pēdējā metodē (FaceBookPageTitleVerification) teikts, ka noklikšķiniet uz Google meklēšanas ikonas un pārbaudiet, vai pārlūkprogrammas nosaukums ir mainīts uz Facebook - Google meklēšana.
Tagad palaidiet šo kodu, izmantojot testNG, kā parādīts videoklipā, un jūs atradīsit, ka visi testa gadījumi neizdodas. Neveiksmes iemesls: tā kā ir atkarīgs no iepriekšējā testa gadījuma nokārtošanas, tiks nodots tikai pašreizējais testa gadījums.
Šajā gadījumā,
- Pirmā izpildītā metode ir openBrowser (). Tas tika izturēts, jo tam nav nekādas atkarības.
- Otrā izpildītā metode ir FaceBookPageTitleVerification (); tas neizdodas, jo mēs cenšamies noklikšķināt uz meklēšanas pogas un pārbaudīt pārlūka nosaukumu.
- Jūs varat redzēt, ka, ja meklēšanas darbība netiek apstrādāta, kā var tikt izpildīts jebkurš cits solis. Līdz ar to manas pārbaudes lietas neizdodas.
PĀRTRAUKTS: openBrowserNeveiksmīgs: FaceBookPageTitleVerificationNeveiksmīgs: palaidietGoogleNEVEICA: peformSeachAndClick1stLink
TestNG koda demonstrācija bez prioritātes alfabētiskā secībā
Ja neminēsim nevienu prioritāti, testng izpildīs @Test metodes, pamatojoties uz to metožu nosaukumu alfabētisko secību, neatkarīgi no to ieviešanas vietas kodā.
pakete com.guru.testngannotations;importēt org.testng.annotations.Test;publiskā klase TestNG_Priority_Annotations {@Pārbaudepublic void c_method () {System.out.println ("Es esmu C metodē");}@Pārbaudepublic void b_method () {System.out.println ("Es esmu B metodē");}@Pārbaudepublic void a_method () {System.out.println ("Es esmu A metodē");}@Pārbaudepublic void e_method () {System.out.println ("Es izmantoju E metodi");}@Pārbaudepublic void d_method () {System.out.println ("Es izmantoju D metodi");}}
Rezultāts
Es esmu A metodēEs esmu B metodēEs esmu C metodēEs esmu D metodēEs esmu E metodē
Lai gan mēs metodes definējām nejauši (c, b, a, e, d), testng izpildīja metodes, pamatojoties uz to metožu nosaukumiem, ņemot vērā alfabētisko secību, un tas pats tika atspoguļots arī izvadē.
Kā iestatīt prioritāti TestNG
Kā redzējāt iepriekšējā piemērā, šī secība ir jāizpilda, lai izpildītu šo scenāriju, tāpēc mēs modificēsim iepriekšējo koda daļu ar prioritātes parametru tā, lai katram testam būtu jāsaskaras ar tiem piešķirto prioritāti.
Kā redzat, katram testa gadījumam esam piešķīruši prioritāti, tas nozīmē, ka vispirms tiks izpildīta zemākā prioritātes vērtība.
Prioritāte testNG darbībā
importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.testng.Assert;importēt org.testng.annotations.Test;publiskā klase Priority_In_testNG {WebDriver draiveris;// 1. metode: atveriet pārlūku, teiksim, Firefox@Test (prioritāte = 1)public void openBrowser () {draiveris = jauns FirefoxDriver ();}// 2. metode: palaidiet vietni Google.com@Test (prioritāte = 2)public void launchGoogle () {driver.get ("http://www.google.co.in");}// 3. metode: veiciet meklēšanu, izmantojot "Facebook"@Test (prioritāte = 3)public void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Meklēt']")). sendKeys ("Facebook");}// 4. metode: pārbaudiet Google meklēšanas lapas nosaukumu.@Test (prioritāte = 4)public void FaceBookPageTitleVerification () met izņēmumu {driver.findElement (By.xpath (".//*[@ value = 'Meklēt']")). noklikšķiniet ();Vītne.miegs (3000);Assert.assertEquals (draiveris.getTitle (). Satur ("Facebook - Google meklēšana"), patiess);}}
Kodeksa skaidrojums
Pēc katras testa prioritātes piešķiršanas palaidiet iepriekš minēto kodu, izmantojot testNG, kā parādīts zemāk minētajā Video-2.
Šeit jūs varat redzēt, ka testa gadījumi ir prioritāri. Vispirms tiek izpildīti testa gadījumi ar zemāku prioritāti, ti, tagad testu gadījumos tiek veikta secīga izpilde atbilstoši prioritātei. Līdz ar to visas pārbaudes lietas tagad iet cauri.
Ievērojiet aptumsuma konsoli:
Izeja :
PĀRTRAUKTS: openBrowserPĀRTRAUKTS: palaidietGooglePASSED: peformSearchAndClick1stLinkPĀRDOTS: FaceBookPageTitleVerification
Skaitlim 0 ir visaugstākā prioritāte (tas tiks izpildīts vispirms), un prioritāte turpinās, pamatojoties uz norādīto skaitli, ti, 0 ir augstākā prioritāte nekā 1. 1 ir augstākā prioritāte nekā 2 un tā tālāk.
pakete com.guru.testngannotations;importēt org.testng.annotations.Test;publiskā klase TestNG_Priority_Annotations {@Test (prioritāte = 6)public void c_method () {System.out.println ("Es esmu C metodē");}@Test (prioritāte = 9)public void b_method () {System.out.println ("Es esmu B metodē");}@Test (prioritāte = 1)public void a_method () {System.out.println ("Es esmu A metodē");}@Test (prioritāte = 0)public void e_method () {System.out.println ("Es izmantoju E metodi");}@Test (prioritāte = 3)public void d_method () {System.out.println ("Es izmantoju D metodi");}}
Rezultāts
Es esmu E metodēEs esmu A metodēEs esmu D metodēEs esmu C metodēEs esmu B metodē
Šeit mēs esam norādījuši prioritātes kā 0,1,3,6,9. Tātad vispirms tiek izpildīta metode, kuras prioritāte ir 0, un pēc tam metode, kuras prioritāte ir 1 un tā tālāk. Šeit alfabētiskā secībā metodes nosaukums netiks ņemts vērā, jo mēs norādījām prioritātes
Metodes ar tādu pašu prioritāti:
Iespējams, ka metodēm var būt tāda pati prioritāte. Tādos gadījumos testng ņem vērā to metožu nosaukumu alfabētisko secību, kuru prioritāte ir vienāda.
pakete com.guru.testngannotations;importēt org.testng.annotations.Test;publiskā klase TestNG_Priority_Annotations {@Test (prioritāte = 6)public void c_method () {System.out.println ("Es esmu C metodē");}@Test (prioritāte = 9)public void b_method () {System.out.println ("Es esmu B metodē");}@Test (prioritāte = 6)public void a_method () {System.out.println ("Es esmu A metodē");}@Test (prioritāte = 0)public void e_method () {System.out.println ("Es izmantoju E metodi");}@Test (prioritāte = 3)public void d_method () {System.out.println ("Es izmantoju D metodi");}}
Rezultāts
Es esmu E metodēEs esmu D metodēEs esmu A metodēEs esmu C metodēEs esmu B metodē
Šeit 'e' un 'd' tiek izpildīti, pamatojoties uz to prioritārajām vērtībām. Bet metodēm “a” un “c” ir viena un tā pati prioritārā vērtība (6). Tātad, šeit testng ņem vērā alfabētisko secību "a" un "c" un attiecīgi tos izpilda.
Apvienojot gan prioritātes (kurām ir vienāda prioritāte), gan prioritātes nesaistītas metodes:
Šajā gadījumā mēs aplūkosim divus gadījumus vienā testng klasē.
- Metodes ar vienādu prioritātes vērtību.
- Vairāk nekā viena metode, kurai nav piešķirta prioritāte.
pakete com.guru.testngannotations;importēt org.testng.annotations.Test;publiskā klase TestNG_Priority_Annotations {@Pārbaude()public void c_method () {System.out.println ("Es esmu C metodē");}@Pārbaude()public void b_method () {System.out.println ("Es esmu B metodē");}@Test (prioritāte = 6)public void a_method () {System.out.println ("Es esmu A metodē");}@Test (prioritāte = 0)public void e_method () {System.out.println ("Es izmantoju E metodi");}@Test (prioritāte = 6)public void d_method () {System.out.println ("Es izmantoju D metodi");}}
Izeja:
Es esmu B metodēEs esmu C metodēEs esmu E metodēEs esmu A metodēEs esmu D metodē
PĀRTRAUKTS: b_metodePĀRTRAUKTS: c_metodePĀRTRAUKTS: e_metodePĀRTRAUKTS: a_metodePĀRTRAUKTS: d_metode
Paskaidrojums:
Pirmā izvēle: Neprioritāras metodes: “c” un “b”: pamatojoties uz alfabētisko secību, vispirms tika izpildīts “b” un pēc tam “c”.
Otrā izvēle: Prioritāras metodes: “a”, “e” un “d”: “e” tika izpildītas vispirms, jo tai bija visaugstākā prioritāte (0). Tā kā “a” un “d” metožu prioritāte bija vienāda, testng uzskatīja savu metožu nosaukumu alfabētisko secību. Tātad starp viņiem vispirms tika izpildīts “a” un pēc tam “d”.
Reģistrjutīgs reģistrs TestNG
Jūsu informācijai ir standarta sintakse, lai definētu prioritāti testNG, ti, @Test (prioritāte = 4) . Pieņemsim , ka jūs to definējat citā sintaksē, piemēram, @Test (PRIORITY = 1), tad jūsu IDE parādīs to kā sastādīšanas kļūdu . Skatiet attēlu zemāk:
Secinājums:
Kā jūs redzējāt, ka, ja ir prasība izpildīt testa gadījumu kopu noteiktā secībā, to var viegli izdarīt, izmantojot prioritāti, izmantojot testNG kā palaišanas rīku.
Šī apmācība ir iespējama, pateicoties Ramandeep Singh un Rama Krišna Gadde ieguldījumam