„TestNG Groups“: įtraukite, neįtraukite su pavyzdžiu - „Selenium Tutorial“

Turinys:

Anonim

„TestNG“ yra testavimo sistema, apimanti įvairių tipų testų dizainus, tokius kaip vienetas, funkcinis, galas iki galo, vartotojo sąsaja ir integracijos testas.

Galite paleisti vieną arba kelis paketus (paketas čia reiškia klasių grupavimą tinkamu direktoriaus formatu) sukurdami XML ir paleisdami ją per „maven“.

Šioje pamokoje sužinosite

  • „TestNG“ grupės su pavyzdžiu
  • Nustatyti „maven“ ir „Java“ kelią aplinkos kintamajame („Windows“ vartotojui)
  • Įvadas į XML ir kaip sukurti XML failus
  • Kitas vietoj Grupavimo mechanizmas yra „neįtraukti“ arba „įtraukti“ į bandomąją XML
  • Kaip paleisti kodą naudojant XML failą (vaizdo demonstraciją)

„TestNG“ grupės su pavyzdžiu

„Testng“ grupes naudojame, kai

  • Nenorime atskirai apibrėžti bandymo metodų skirtingose ​​klasėse (atsižvelgiant į funkcionalumą) ir
  • Tuo pačiu metu norite nepaisyti (nevykdyti) kai kurių bandomųjų atvejų, tarsi jų nėra kode.
  • Taigi, norėdami tai įgyvendinti, turime juos sugrupuoti. Tai daroma naudojant testNG palaikomą mechanizmą „įtraukti“ ir „neįtraukti“.

Žemiau pateiktame pavyzdyje parodėme sintaksę, kaip naudoti grupes XML faile.

@Test (grupės = {"susiejimas", "stiprūs_tiesiai"}) 

Čia mes naudojame 2 grupių pavadinimus, ty "susiejimas" ir "stiprus_tiesiai" (tai yra logiškas pavadinimas, kurį galima pakeisti pagal jūsų norą).

žyma apibrėžia grupių pradžią XML.

Tinkinkite savo XML, kad pasirinktumėte paminėtą grupę iš testo klasių. Žemiau minima sintaksė, kaip deklaruoti grupes XML faile, pvz


Tarkime, kad klasėje yra 10 testavimo metodų.

Iš jų,

  • 6 metodai yra pažymėti "klijavimo" grupėje ir
  • 4 yra „strong_ties“ grupėje

Žengdami į priekį, mes nustatysime „maven“ / „Java“ kelią ir naudosime „Eclipse IDE“, kad parodytume grupių, naudojančių XML failus, naudojimą „Java“ pagrįstame „maven“ projekte.

Nustatyti „maven“ ir „Java“ kelią aplinkos kintamajame („Windows“ vartotojui)

Žr. Https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Įvadas į XML ir kaip sukurti XML failus

  • XML (Extensible Markup Language) faile „Maven“ sistemoje yra vieno ar daugiau testų informacija ir jį apibrėžia žymė .
  • Testo informaciją XML žymi žymė ir joje gali būti viena ar daugiau TestNG klasių.
  • Java klasė, kuri yra @Test anotaciją anksčiau bandymų metodų yra apibrėžiamas kaip TestNG metodus.

Kelios žymos yra naudojamos nuosekliai kuriant veikiantį testą NG xml, pvz., , ir

  • Pirmiausia yra žyma , turinti loginį pavadinimą, apibrėžiantį visą informaciją apie testNG, apie kurią pranešta, kad sugeneruotų vykdymo ataskaitą.
  • Antrasis yra , atkreipkite dėmesį, kad tai logiškas pavadinimas, kuriame laikoma testo vykdymo ataskaitos informacija, pvz., Išlaikymas, nesėkmė, bandymų atvejų praleidimas ir kita informacija, pvz., Bendras vykdymo laikas ir grupės informacija
  • Trečia yra , com.group.guru99 yra naudojamas paketas, o Test Class pavadinimas yra TC_Class1.

Šią XML naudosime būsimiems vaizdo įrašo trūkumams.

Kitas vietoj Grupavimo mechanizmas yra „neįtraukti“ arba „įtraukti“ į bandomąją XML

Tarkime, kad naudojate grupės mechanizmo kompleksą, tada „testNG XML“ palengvina funkciją, kad būtų neįtrauktas / įtrauktas testas.

Išskirti žymą : sintaksė Išskirti žymą  Įtraukti Tag : sintaksė yra žyma 

Pastaba: Mes galime įtraukti / išskirti kelis bandymo atvejus vienu metu, ir tai taip pat veikia su grupėmis.

Kaip paleisti kodą naudojant XML failą (vaizdo demonstraciją)

„Java“ kodo ir XML paaiškinimas kartu su grupe, išskirkite ir įtraukite žymą į XML.

  • Scenarijus : Paleiskite „Guru99“ demonstracinę bankininkystės svetainę, patikrinkite keletą dalykų prisijungimo puslapyje, tada įveskite kredencialus ir dar kartą patikrinkite keletą naujų dalykų programoje, kai esate prisijungę.

Pastaba : Kiekvienas žingsnis, kurį koduojate, turėtų būti deklaruojamas atskirais metodais, tačiau jį atlikus, jis atliks bandymo metodus, atsižvelgiant į XML failo įrašus.

1 metodas : pradėkite naršyklę ir paleiskite URL (tc01LaunchURL ())

2 metodas : patikrinkite prisijungimo puslapio antraštę (tc02VerifyLaunchPage ())

3 metodas : įveskite vartotojo vardą ir slaptažodį prisijungimo formoje (tc03EnterCredentials ())

4 metodas : patikrinkite, ar valdytojo ID yra vartotojo informacijos suvestinėje (tc04VerifyLoggedInPage ())

5 metodas : patikrinkite dar kelias nuorodas „User DashBoard“ (tc05VerifyHyperlinks ())

Mūsų scenarijaus kodas:

paketas com.group.guru99;importuoti java.util.concurrent.TimeUnit;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ė TC_Class1 {public static final „WebDriver“ webDriver = naujas „FirefoxDriver“ () ;;String launchPageHeading = "// h3 [text () = 'Guru99 bankas']";galutinė eilutė userName_element = "// įvestis [@ name = 'uid']", slaptažodžio_elementas = "// įvestis [@ name = 'slaptažodis']",signIn_element = "// įvestis [@ name = 'btnLogin']";galutinė eilutė userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [yra (text (), 'Manger Id')]];galutinė eilutė newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Šis bandymo atvejis inicijuos „webDriver“* /@Test (grupės = {"susiejimas", "stiprūs_tiesiai"})public void tc01LaunchURL () {webDriver.manage (). langas (). maksimaliai padidinti ();webDriver.manage (). skirtasis laikas (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get („http://www.demo.guru99.com/V4/“);}/ *** Patikrins antraštės buvimą prisijungimo puslapyje* /@Test (grupės = {"susiejimas"})public void tc02VerifyLaunchPage () {„Assert.assertTrue“ („WebDriver.findElement“ (By.xpath (launchPageHeading)). IsDisplayed (),„Namų puslapio antraštė nerodoma“);System.out.println („Rodoma pagrindinio puslapio antraštė“);}/ *** Šis bandomasis atvejis įrašys vartotojo vardą, slaptažodį ir tada spustelės* prisijungimo mygtukas* /@Test (grupės = {"susiejimas", "stiprūs_tiesiai"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (vartotojo vardo_elementas)). sendKeys (vartotojo vardo_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). spustelėkite ();}/ *** Šis bandomasis atvejis patikrins valdytojo ID buvimą „DashBoard“* /@Test (grupės = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),„Vadovo ID etiketė nerodoma“);System.out.println („rodoma„ Manger Id “etiketė“);}/ *** Šis bandomasis atvejis patikrins, ar yra nauja kliento nuoroda* Ir „FundTransfer“ nuoroda kairiajame skydelyje* /@Test (grupės = {"susiejimas"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),„Naujo kliento hipersaitas nerodomas“);System.out.println („Rodoma naujo kliento hipersaitas“);„Assert.assertTrue“ („webDriver.findElement“ (pagal .xpath (fundTransfer)). IsEnabled (),„Lėšų pervedimo hipersaitas nerodomas“);System.out.println („rodoma lėšų pervedimo hipersaitas“);}}

Atkreipkite dėmesį: kredencialai galioja tik 20 dienų, taigi, jei bandote paleisti kodą savo vietiniame kompiuteryje, gali kilti klaida dėl neteisingų prisijungimo duomenų. Norėdami sukurti prisijungimo duomenis, atlikite toliau nurodytus veiksmus.

  1. Paleiskite http://www.demo.guru99.com
  2. Laukelyje įveskite savo el. Pašto adresą.
  3. Spustelėkite „Enter“ ir ekrane pamatykite išsamią prisijungimo informaciją.

Kodo paaiškinimas:

Kaip minėta pirmiau, mes sukūrėme 5 bandymo atvejus, kai kiekvienas veiksmas atliekamas nepriklausomais metodais.

Galite pastebėti, kad prie kiekvieno metodo susiejome grupės parametrą, kuriame buvo tam tikra vertė.

Iš esmės tai yra diferencijuojančių grupių pavadinimas, ty „stiprūs_tiesiai“ ir „susiejimas“.

  • Pirmasis ir trečiasis metodai žymimi „klijavimu“, „stipriaisiais“, o tai reiškia, kad jei XML atnaujinamas bet kurioje iš grupių, šis bandymo atvejis bus vykdomas.
  • Antrasis metodas žymimas tik „susiejimo“ grupe, tai reiškia, kad jei XML atnaujinama sujungimo grupe. Tik tokiu atveju ši bandomoji byla bus vykdoma.
  • Ketvirtasis bandymo atvejis priskiriamas grupei strong_ties, o tai reiškia, kad šis bandymo atvejis bus vykdomas tik tuo atveju, jei XML bus atnaujintas grupės strong_ties pavadinimu.
  • Paskutinis, bet ne mažiau kaip penktasis bandymo atvejis pridedamas prie surišimo grupės, o tai reiškia, kad šis bandomasis atvejis bus vykdomas tik tuo atveju, jei XML bus atnaujintas sujungimo grupės pavadinimu.

Taigi apskritai turime 4 scenarijus;

  1. Mes norime atlikti visus bandymo atvejus, neatsižvelgiant į grupės pavadinimą. Tokiu atveju pašalinsime grupės žymą iš XML paleidimo.
  1. Mes norime atlikti kelis bandymo atvejus, susijusius tik su bet kuria iš grupių, ty su stipriaisiais ar klijais
  • Prašome kreiptis:

  • Šiame vaizdo įraše grupės parametras pakomentuojamas vykdant XML. Taigi pamatysite, kad visos bandomosios bylos buvo įvykdytos.
  • Tęsiant vaizdo įrašą, dabar mes įtraukėme grupės pavadinimą į XML, galite matyti tik bandymų atvejus, būdingus tai grupei.
  1. Mes naudojame išskyrimo mechanizmą, kad pašalintume bandomąjį atvejį:
  • Prašau kreiptis

  • Matote, kad mes panaudojome neįtraukti kelių bandomųjų atvejų (tc02), užrašydami jų vardus vykdydami XML. Galutiniame rezultate minėti testai nebuvo vykdomi.
  1. Galiausiai, mes naudojame įtraukimo bandymo mechanizmą, kad įtrauktume bandymo atvejus (tc01LaunchURL, tc03EnterCredentials ir tc05VerifyHyperlinks)
    • Prašau kreiptis

    • Šiame vaizdo įraše pamatysite, kad XML paminėti bandomieji atvejai vykdomi tik vykdant bandymą.

    Atsisiųskite kodą iš paminėto URL, jame bus visų tipų testXML:

    Atsisiųskite aukščiau pateiktą kodą

    Išvada

    Čia mes išmokome palyginti naują bandomųjų atvejų paleidimo būdą naudojant XML „Maven“ projekte.

    Pirmiausia pateikėme trumpą testNG įvadą ir tęsėme išsamią techninę grupių, neįtraukimo ir įtraukimo specifikaciją.