TestNG @Test Prioriteet seleenis

Lang L: none (table-of-contents):

Anonim

TestNG on testimisraamistik, mis hõlmab erinevat tüüpi testide kujundusi, nagu ühikutest, funktsionaalne test, lõpptest, kasutajaliidese test ja integreerimistest.

Testng-koodis saate käivitada ühe või mitu testjuhtu.

Kui testi prioriteet pole mitme testjuhtumi käitamise ajal määratletud, määrab TestNG kõigile @Test prioriteetidele nulli (0).

Nüüd jooksmise ajal; Kõigepealt määratakse madalamad prioriteedid.

Selles õpetuses saate teada -

  • TestNG koodi demo ilma prioriteedita
  • TestNG koodi demo tähestikulises järjekorras ilma prioriteedita
  • Kuidas seada TestNG-s prioriteet
  • Sama prioriteediga meetodid
  • Kombineerides nii prioriseeritud (sama prioriteediga) kui ka prioriseerimata meetodid

TestNG koodi demo ilma prioriteedita

Võtame stsenaariumi, kus kõigi testjuhtumite läbimiseks on vajalik järjestamine:

Stsenaarium: genereerige kood, kus peate Google'i otsingu tegema kindla märksõnaga, öeldes "Facebook". Nüüd kontrollige, kas brauseri pealkiri on asendatud nimega "Facebook - Google'i otsing".

Märkus. Iga kodeeritud samm peaks toimuma eraldi meetodites

1. meetod : avage brauser, öelge Firefox (openBrowser ())

2. meetod : käivitage Google.com (launchGoogle ())

3. meetod : tehke otsing, kasutades funktsiooni "Facebook" (performSearchAndClick1stLink ())

4. meetod : kontrollige Google'i otsingulehe pealkirja (FaceBookPageTitleVerification ())

Meie stsenaariumi kood :

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;avalik klass Prioriteet_In_testNG {WebDriveri draiver;// 1. meetod: avage Brower, öelge Firefox@Testpublic void openBrowser () {draiver = uus FirefoxDriver ();}// 2. meetod: käivitage Google.com@Testpublic void launchGoogle () {driver.get ("http://www.google.co.in");}// 3. meetod: otsingu tegemine, kasutades funktsiooni „Facebook”@Testpublic void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Otsi']")). sendKeys ("Facebook");}// 4. meetod: kontrollige Google'i otsingulehe pealkirja.@Testpublic void FaceBookPageTitleVerification () viskab erandi {driver.findElement (By.xpath (".//*[@ väärtus = 'Otsi']")). klõpsake ();Niit.unne (3000);Assert.assertEquals (driver.getTitle (). Sisaldab ("Facebook - Google'i otsing"), tõsi);}}

Koodi selgitus

Nagu eelpool mainitud, oleme iga toimingu sooritamiseks sõltumatute meetoditega loonud 4 testjuhtu.

  • Esimene meetod (openBrowser) seisneb Firefoxi brauseri lähtestamises.
  • Teine meetod (launchGoogle) ütleb, et Google.com käivitatakse initsialiseeritud brauseris.
  • Kolmas meetod (peformSeachAndClick1stLink) väidab, et nad teevad otsingu otsingukastis (kus xpath (".//*[@title='Search ']") otsinguterminiga Facebook ja
  • Neljas ja viimane meetod (FaceBookPageTitleVerification) ütleb, et klõpsake Google'i otsinguikoonil ja veenduge, et brauseri pealkiri on muudetud Facebookiks - Google'i otsing.

Nüüd käivitage see kood, kasutades testNG-d, nagu on näidatud videos, leiate, et kõik testjuhtumid ebaõnnestuvad. Ebaõnnestumise põhjus: kuna eelmise katsejuhtumi läbimine sõltub sõltuvusest, edastatakse ainult praegune jooksev testjuhtum.

Sel juhul,

  • Esimene käivitatav meetod on openBrowser (). See sai mööda, sest sellel pole mingit sõltuvust.
  • Teine täidetud meetod on FaceBookPageTitleVerification (); see ebaõnnestub, kuna proovime klõpsata otsingunuppu ja kontrollida brauseri pealkirja.
  • Näete, et kui otsingutegevust ei töödelda, siis kuidas mõni muu samm läbi saab. Seega on see põhjus, miks minu testjuhtumid ebaõnnestuvad.
PASSED: avatud sirvijaFAILED: FaceBookPageTitleVerificationFAILED: käivitageGoogleFAILED: peformSeachAndClick1stLink

TestNG koodi demo tähestikulises järjekorras ilma prioriteedita

Kui me prioriteete ei maini, käivitab testng @Test meetodid nende meetodite nimede tähestikulises järjekorras, olenemata nende rakenduskohast koodis.

pakett com.guru.testngannotations;import org.testng.annotations.Test;avalik klass TestNG_Priority_Annotations {@Testpublic void c_method () {System.out.println ("Olen meetodil C");}@Testpublic void b_method () {System.out.println ("Olen meetodil B");}@Testpublic void a_method () {System.out.println ("Olen meetodil A");}@Testpublic void e_method () {System.out.println ("Olen meetodil E");}@Testpublic void d_method () {System.out.println ("Olen meetodil D");}}

Väljund

Olen meetodil AOlen B-meetodilOlen meetodil COlen D-meetodilOlen meetodil E

Ehkki me määratlesime meetodid juhuslikult (c, b, a, e, d), viis testng meetodid kasutusele nende meetodinimedel, võttes arvesse tähestikulist järjekorda ja sama kajastus ka väljundis.

Kuidas seada TestNG-s prioriteet

Nagu eelmises näites nägite, et selle stsenaariumi läbimiseks on vaja järjestamist, muudame eelmist koodijuppi prioriteediparameetriga nii, et iga test peaks vastama neile määratud prioriteedile.

Nagu näete, määrasime igale testijuhule prioriteedi, tähendab see, et kõigepealt täidetakse madalam prioriteediväärtus.

Prioriteet testNG-s töös

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;avalik klass Prioriteet_In_testNG {WebDriveri draiver;// 1. meetod: avage brauser, öelge Firefox@Test (prioriteet = 1)public void openBrowser () {draiver = uus FirefoxDriver ();}// 2. meetod: käivitage Google.com@Test (prioriteet = 2)public void launchGoogle () {driver.get ("http://www.google.co.in");}// 3. meetod: otsingu tegemine, kasutades funktsiooni „Facebook”@Test (prioriteet = 3)public void peformSeachAndClick1stLink () {driver.findElement (By.xpath (".//*[@ title = 'Otsi']")). sendKeys ("Facebook");}// 4. meetod: kontrollige Google'i otsingulehe pealkirja.@Test (prioriteet = 4)public void FaceBookPageTitleVerification () viskab erandi {driver.findElement (By.xpath (".//*[@ väärtus = 'Otsi']")). klõpsake ();Niit.unne (3000);Assert.assertEquals (driver.getTitle (). Sisaldab ("Facebook - Google'i otsing"), tõsi);}} 

Koodi selgitus

Pärast igale katsekojale prioriteedi määramist käivitage ülaltoodud kood testNG abil, nagu on näidatud allpool mainitud Video-2-s.

Siin näete, et testjuhtumid on prioriteetsed. Kõigepealt viiakse läbi madalama prioriteediga testjuhtum, st nüüd on testjuhtumitel järjestikune täitmine vastavalt prioriteedile. Seega on kõik testjuhtumid nüüd möödas.

Pange tähele varjutuse konsooli:

Väljund :

PASSED: avatud sirvijaEDASI: käivitage GooglePASSED: peformSearchAndClick1stLinkPASSED: FaceBookPageTitleVerification

Numbril 0 on kõrgeim prioriteet (see täidetakse kõigepealt) ja prioriteet jätkub antud numbri põhjal, st 0-l on kõrgeim prioriteet kui 1. 1-l on kõrgeim prioriteet kui 2 ja nii edasi.

pakett com.guru.testngannotations;import org.testng.annotations.Test;avalik klass TestNG_Priority_Annotations {@Test (prioriteet = 6)public void c_method () {System.out.println ("Olen meetodil C");}@Test (prioriteet = 9)public void b_method () {System.out.println ("Olen meetodil B");}@Test (prioriteet = 1)public void a_method () {System.out.println ("Olen meetodil A");}@Test (prioriteet = 0)public void e_method () {System.out.println ("Olen meetodil E");}@Test (prioriteet = 3)public void d_method () {System.out.println ("Olen meetodil D");}}

Väljund

Olen meetodil EOlen meetodil AOlen D-meetodilOlen meetodil COlen B-meetodil 

Siin oleme esitanud prioriteedid kui 0,1,3,6,9. Niisiis, kõigepealt käivitatakse meetod, mille prioriteet on 0, ja seejärel meetod, mille prioriteet on 1 ja nii edasi. Tähestikulise järjekorra meetodi nime ei võeta arvesse, kuna esitasime prioriteedid

Sama prioriteediga meetodid:

Võib olla võimalus, et meetodid võivad sisaldada sama prioriteeti. Nendel juhtudel arvestab testng meetodi nimede tähestikulist järjekorda, mille prioriteet on sama.

pakett com.guru.testngannotations;import org.testng.annotations.Test;avalik klass TestNG_Priority_Annotations {@Test (prioriteet = 6)public void c_method () {System.out.println ("Olen meetodil C");}@Test (prioriteet = 9)public void b_method () {System.out.println ("Olen meetodil B");}@Test (prioriteet = 6)public void a_method () {System.out.println ("Olen meetodil A");}@Test (prioriteet = 0)public void e_method () {System.out.println ("Olen meetodil E");}@Test (prioriteet = 3)public void d_method () {System.out.println ("Olen meetodil D");}}

Väljund

Olen meetodil EOlen D-meetodilOlen meetodil AOlen meetodil COlen B-meetodil

Siin täidetakse 'e' ja 'd' nende prioriteetsete väärtuste põhjal. Kuid meetodid 'a' ja 'c' sisaldavad sama prioriteediväärtust (6). Niisiis arvestab testng siin tähestikulist järjestust a ja c ning täidab need vastavalt.

Nii prioriteetsete (sama prioriteediga) kui ka prioriseerimata meetodite kombineerimine:

Sel juhul käsitleme ühte testng-klassi kahte juhtumit.

  1. Meetodid, millel on sama prioriteetne väärtus.
  2. Rohkem kui üks prioriteetset meetodit.
pakett com.guru.testngannotations;import org.testng.annotations.Test;avalik klass TestNG_Priority_Annotations {@Test ()public void c_method () {System.out.println ("Olen meetodil C");}@Test ()public void b_method () {System.out.println ("Olen meetodil B");}@Test (prioriteet = 6)public void a_method () {System.out.println ("Olen meetodil A");}@Test (prioriteet = 0)public void e_method () {System.out.println ("Olen meetodil E");}@Test (prioriteet = 6)public void d_method () {System.out.println ("Olen meetodil D");}}

Väljund:

Olen B-meetodilOlen meetodil COlen meetodil EOlen meetodil AOlen D-meetodil 
MÖÖDUD: b_metoodMÖÖDATUD: c_methodMÖÖDATUD: e-meetodMÖÖDATUD: a_metoodMÖÖDUD: d_metood

Selgitus:

Esimene eelistus: prioriteetsed meetodid: 'c' ja 'b': tähestikulise järjekorra alusel käivitati esmalt 'b' ja seejärel 'c'.

Teine eelistus: Prioriteetsed meetodid: 'a', 'e' ja 'd': 'e' täideti esimesena, kuna sellel oli kõrgeim prioriteet (0). Kuna a- ja d-meetodite prioriteet oli sama, arvestas testng nende meetodite nimede tähestikulist järjekorda. Nii et nende vahel hukati kõigepealt 'a' ja seejärel 'd'.

Suur- ja väiketähed testNG-s

Teie teadmiseks on testNG-s prioriteedi määratlemiseks standardne süntaks, st @Test (prioriteet = 4) . Oletame , et määratlete selle mõnes muus süntaksis, näiteks @Test (PRIORITY = 1), siis kuvab teie IDE seda kompileerimisveana . Vaadake allolevat pilti:

Järeldus:

Nagu olete näinud, et kui on vaja käivitada test-juhtumite komplekt kindlas järjestuses, saab seda hõlpsasti teha prioriteediga, kasutades tööriista testNG.

See õpetus on võimalik tänu Ramandeep Singhi ja Rama Krishna Gadde panusele