„TestNG“ klausytojai selene: „ITestListener“ ir „ITestResult“ pavyzdys

Turinys:

Anonim

Yra du pagrindiniai klausytojai.

  1. „WebDriver“ klausytojai
  2. TestNG klausytojai

Šioje pamokoje aptarsime „Testng“ klausytojus. Štai ką jūs sužinosite

  • Kas yra „TestNG“ klausytojai?
  • Klausytojų tipai TestNG
  • Testo scenarijus:
  • TestNG klausytojo sukūrimo veiksmai
  • Klausytojo naudojimas kelioms klasėms.

Kas yra „TestNG“ klausytojai?

Klausytojas apibrėžiamas kaip sąsaja, modifikuojanti numatytąjį „TestNG“ elgesį. Kaip rodo pavadinimas, klausytojai „klauso“ seleno scenarijuje apibrėžto įvykio ir elgiasi atitinkamai. Jis naudojamas selene įgyvendinant klausytojų sąsają. Tai leidžia pritaikyti „TestNG“ ataskaitas ar žurnalus. Yra daugybė „TestNG“ klausytojų tipų.

Klausytojų tipai TestNG

Yra daugybė klausytojų tipų, kurie leidžia pakeisti „TestNG“ elgesį.

Toliau pateikiami keli „TestNG“ klausytojai:

  1. „IAnnotationTransformer“,
  2. „IAnotationTransformer2“,
  3. IC konfigūruojamas,
  4. IConfigurationListener,
  5. „IExecutionListener“,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. „IMethodInterceptor“,
  10. IReporter,
  11. „ISuiteListener“,
  12. „ITestListener“.

Virš sąsajos vadinami „TestNG“ klausytojai. Šios sąsajos naudojamos selene, norint generuoti žurnalus arba pritaikyti „TestNG“ ataskaitas.

Šioje pamokoje įdiegsime „ITestListener“.

„ITestListener“ turi šiuos metodus

  • „OnStart“ - „ OnStart“ metodas iškviečiamas, kai prasideda bet koks bandymas.
  • „onTestSuccess- onTestSuccess“ metodas yra naudojamas bet kurio bandymo sėkmei.
  • „onTestFailure- onTestFailure“ metodas vadinamas bet kurio bandymo gedimu.
  • onTestSkipped- onTestSkipped metodas iškviečiamas praleidus bet kurį testą.
  • „onTestFailedButWithinSuccessPercentage“ metodas iškviečiamas kiekvieną kartą, kai bandymas nepavyksta, tačiau neviršija sėkmės procento.
  • „onFinish- onFinish“ metodas iškviečiamas atlikus visus bandymus.

Testo scenarijus:

Pagal šį bandymo scenarijų mes automatizuosime prisijungimo procesą ir įgyvendinsime „ItestListener“.

  1. Paleiskite „Firefox“ ir atidarykite svetainę „http://demo.guru99.com/V4/“
  1. Prisijunkite prie programos.

TestNG klausytojo sukūrimo veiksmai

Pagal pirmiau pateiktą bandymo scenarijų mes įdiegsime „Klausytoją“.

1 žingsnis) Sukurkite klasę „ListenerTest“, kuri įgyvendina „ITestListener“. Perkelkite pelės žymeklį ant raudonojo teksto, o „Eclipse“ jums pasiūlys 2 greitus pataisymus, kaip parodyta žemiau esančiame ekrane:

Tiesiog spustelėkite „Pridėti neįgyvendintų metodų“. Prie kodo pridedami keli neįgyvendinti metodai (be turinio). Patikrinkite žemiau-

paketas „Listener_Demo“;importuoti org.testng.ITestContext;importuoti org.testng.ITestListener;importuoti org.testng.ITestResult;viešoji klasė „ListenerTest“ įgyvendina „ITestListener“{@ Nepaisytipublic void onFinish (ITestContext arg0) {// TODO Automatiškai sugeneruotas metodas}@ Nepaisytipublic void onStart (ITestContext arg0) {// TODO Automatiškai sugeneruotas metodas}@ Nepaisytipublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Automatiškai sugeneruotas metodas}@ Nepaisytipublic void onTestFailure (ITestResult arg0) {// TODO Automatiškai sugeneruotas metodas}@ Nepaisytipublic void onTestSkipped (ITestResult arg0) {// TODO Automatiškai sugeneruotas metodas}@ Nepaisytipublic void onTestStart (ITestResult arg0) {// TODO Automatiškai sugeneruotas metodas}@ Nepaisytipublic void onTestSuccess (ITestResult arg0) {// TODO Automatiškai sugeneruotas metodas}}

Pakeiskime „ListenerTest“ klasę. Visų pirma, mes modifikuosime šiuos metodus -

onTestFailure, onTestSkipped, onTestStart, onTestSuccess ir kt.

Modifikacija paprasta. Mes tiesiog atspausdiname Testo pavadinimą.

Žurnalai kuriami konsolėje. Vartotojui lengva suprasti, kuris testas yra išlaikytas, nesėkmingas ir praleistas.

Po modifikavimo kodas atrodo kaip

paketas „Listener_Demo“;importuoti org.testng.ITestContext;importuoti org.testng.ITestListener;importuoti org.testng.ITestResult;viešoji klasė „ListenerTest“ įgyvendina „ITestListener“{@ Nepaisytipublic void onFinish („ITestContext Result“){}@ Nepaisytipublic void onStart („ITestContext Result“){}@ Nepaisytipublic void onTestFailedButWithinSuccessPercentage („ITestResult Result“){}// Kai bandomasis atvejis nepavyksta, vadinamas šis metodas.@ Nepaisytipublic void onTestFailure („ITestResult Result“){System.out.println ("Bandomosios programos pavadinimas nepavyko: + Rezultatas.getName ());}// Kai bandomasis atvejis praleidžiamas, vadinamas šis metodas.@ Nepaisytipublic void onTestSkipped („ITestResult Result“){System.out.println ("Praleisto testo pavadinimas yra: + Rezultatas.getName ());}// Pradėjus bandymo atvejį, vadinamas šis metodas.@ Nepaisytipublic void onTestStart („ITestResult Result“){System.out.println (Result.getName () + "bandymo atvejis pradėtas");}// Kai bandymo atvejis bus išlaikytas, bus vadinamas šis metodas.@ Nepaisytipublic void onTestSuccess („ITestResult Result“){System.out.println ("Patvirtinto testo pavadinimas yra: + Rezultatas.getName ());}}

2 žingsnis) Sukurkite kitą klasę „TestCases“ prisijungimo proceso automatizavimui. „Selenium“ vykdys šią „TestCases“, kad prisijungtų automatiškai.

paketas „Listener_Demo“;importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;importuoti org.testng.Assert;importuoti org.testng.nototations.Klausytojai;Importuoti org.testng.annotations.Test;viešosios klasės „TestCases“ {„WebDriver“ tvarkyklė = nauja „FirefoxDriver“ ();// Patikrinkite, ar perteikti klausytojus.@Testpublic void Prisijungti (){driver.get („http://demo.guru99.com/V4/“);driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("slaptažodis")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). spustelėkite ();}// Priverstinai nepavyko atlikti šio bandymo, kad būtų galima patikrinti klausytoją.@Testpublic void TestToFail (){System.out.println ("Šis metodas bandymui nepavykti");„Assert.assertTrue“ (klaidinga);}}

3 žingsnis. Tada įdiekite šį klausytoją į įprastą projekto klasę, ty „TestCases“. Yra du skirtingi būdai prisijungti prie klasės ir sąsajos.

Pirmasis būdas yra naudoti klausytojų anotaciją (@ klausytojai), kaip parodyta žemiau:

@Klausytojai (Listener_Demo.ListenerTest.class) 

Mes tai naudojame klasėje „TestCases“, kaip parodyta žemiau.

Taigi pagaliau klasė „TestCases“ atrodo kaip panaudojus klausytojo anotaciją:

paketas „Listener_Demo“;importuoti org.openqa.selenium.By;importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;importuoti org.testng.Assert;importuoti org.testng.nototations.Klausytojai;importuoti org.testng.annotations.Test;@Klausytojai (Listener_Demo.ListenerTest.class)viešosios klasės „TestCases“ {„WebDriver“ tvarkyklė = nauja „FirefoxDriver“ ();// Patikrinkite, ar perteikti klausytojus.@Testpublic void Prisijungti (){driver.get („http://demo.guru99.com/V4/“);driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("slaptažodis")). sendKeys ("amUpenu");driver.findElement (By.id ("")). spustelėkite ();}// Priverstinai nepavyko atlikti šio patikrinimo kaip patikrinimo klausytojo.@Testpublic void TestToFail (){System.out.println ("Šis metodas bandymui nepavykti");„Assert.assertTrue“ (klaidinga);}}

Projekto struktūra atrodo taip:

4 žingsnis): vykdykite klasę „TestCases“. Klasės „ListenerTest“ metodai yra iškviečiami automatiškai, atsižvelgiant į metodų, komentuojamų kaip @Test, elgseną.

5 žingsnis): Patikrinkite, ar išvestis, kuri registruojama, rodoma konsolėje.

„TestCases“ išvestis atrodys taip:

[TestNG] Bėgimas:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-Customsuite.xmlPradėta prisijungimo bandymo bylaPriimto testo pavadinimas yra: PrisijungtiPradėtas „TestToFail“ bandymo atvejisŠis metodas išbandyti nepavykstaBandomosios bylos pavadinimas nepavyko: TestToFailATLIKTA: PrisijunkiteNEPAVYKO: „TestToFail“java.lang.AssertionError: tikėtasi [tiesa], bet rasti [klaidingi] 

Klausytojo naudojimas kelioms klasėms.

Jei projekte yra kelios klasės, klausytojų įtraukimas į kiekvieną iš jų gali būti sudėtingas ir linkęs į klaidas.

Tokiais atvejais galime sukurti testng.xml ir pridėti klausytojų žymą XML.

Šis klausytojas įgyvendinamas visame testų rinkinyje, neatsižvelgiant į jūsų turimų klasių skaičių. Kai paleisite šį XML failą, klausytojai dirbs visose paminėtose klasėse. Taip pat galite paskelbti bet kokį klausytojų klasės skaičių.

Santrauka:

Klausytojai privalo generuoti žurnalus arba tinkinti „TestNG“ ataskaitas „Selenium Webdriver“.

  • Yra daugybė klausytojų tipų ir jie gali būti naudojami pagal reikalavimus.
  • Klausytojai yra sąsajos, naudojamos seleno žiniatinklio tvarkyklių scenarijuose
  • Parodė klausytojo naudojimą selene
  • Įdiegė klausytojus kelioms klasėms