Uvod v poslušalce v TestNG

Preden najprej poslušamo poslušalce v TestNG, ločeno preučimo poslušalce in TestNG. Obstajajo časi, ko želimo spremeniti vedenje TestNG v naši aplikaciji in to lahko storijo vmesniki. Ti vmesniki, ki uporabniku pomagajo pri tem, so znani kot poslušalci. Kot že ime pove, je glavna naloga poslušalcev poslušati določen dogodek in reagirati v skladu s tem. Glavni namen, ki ga poslušalci uporabljajo programerji, je ustvarjanje dnevnikov in ustvarjanje poročil po meri v skladu z določenim opredeljenim scenarijem.

Na poslušalcih TestNG obstajajo različne vrste poslušalcev in vsak poslušalec služi svojemu različnemu namenu. Nekatere od njih so navedene spodaj:

  1. Brez nastavitve
  2. IAnnotationTransformer
  3. IHookable
  4. IReporter
  5. ISuiteListener

Metode poslušalcev v TestNG

Čeprav je v TestNG na voljo veliko poslušalcev, ima vsak poslušalec določene metode, ki jih preglasijo. Pogovorimo se o 2 najbolj priljubljenih poslušalcih in metodah, ki jih preglasijo:

1. ITestListener

ITestListener je eden najpogosteje uporabljanih poslušalcev v spletnem spletnem dnevniku Selenium. Programer mora preprosto uporabiti vmesnik ITestListener in preglasiti vse metode tega vmesnika, da ga lahko uporablja. Kliče pred in po vsakem preskusu, ki je prisoten v apartmaju. V njej je več načinov, ki so navedeni spodaj:

  • onStart: To je prva in najpomembnejša metoda, ki se prikliče po instanciranju testnega razreda. Uporabite ga lahko tudi za pridobivanje imenika, iz katerega se izvaja preizkus.
  • onFinish: To je zadnja metoda, ki jo je treba poklicati, potem ko so opravljeni vsi prepisani načini.
  • onTestStart (rezultat ITestResult): Ta metoda se pokliče vsakič pred novim testnim načinom. Označuje, da se zažene potrebna preskusna metoda.
  • onTestFailure (rezultat ITestResult): Ta metoda se imenuje, kadar katera koli metoda ni uspešna, saj kaže na napake testa. Nekatere naloge ob neuspehu testa lahko opravimo, kot je posnetek zaslona, ​​ko določen test ne uspe, da bi dobili globlji vpogled v neuspeh.
  • onTestSkipped (rezultat ITestResult): Ta metoda se prikliče, ko je kateri koli testni postopek preskočen za izvedbo.
  • onTestSuccess (rezultat ITestResult): Ta metoda se imenuje, ko se uspešno izvede določena testna metoda. Programer lahko z uspehom preizkusne metode izvede katero koli želeno operacijo s pisanjem kode znotraj te metode.
  • onTestFailedButWithinSuccessPercentage (rezultat ITestResult): Ta metoda se uporabi, kadar kateri koli testni metodi ni uspešen z določenim odstotkom uspeha. Na primer, primer je, če se katera koli preskusna metoda izvede 10-krat in neuspešna 5-krat. Potrebuje 2 parametra, tj. UspešnostPercentage in invocationCount. V zgornjem primeru bi bil uspešnostPercenta 50, račun računa pa 10.

2. ISuiteListener

Za razliko od ITestListenerja, ki se izvaja po vsaki preskusni metodi, je ISuiteListener implementiran na ravni Suite. Ima dva načina, ki sta prevladala:

  • onStart: Ta metoda se izvaja pred priklicem preskusne zbirke, kar pomeni, da se vsa koda, zapisana v njej, izvaja pred začetkom katerega koli paketa.
  • onFinish: Ta metoda se izvaja po priklicu preskusnega paketa, kar pomeni, da se vsa zakodovana koda, ki je napisana v njem, požene po zagonu celotnega preskusnega paketa.

Kako ustvariti poslušalce v TestNG?

V bistvu obstajata dva načina ustvarjanja poslušalcev v TestNG:

1. V razredu lahko uporabimo vmesnik @Listeners.

1. korak: Prvi in ​​najpomembnejši korak je ustvariti razred za poslušalca, ki izvaja ITestListener in preglasi vse zgoraj opisane metode.

Razred: TestListener.java

Koda:

package Demo;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class TestListener implements ITestListener
(
@Override
public void onTestStart(ITestResult res)
(
System.out.println("Started test case is "+ res.getName());
)
@Override
public void onStart(ITestContext res)
(
)
@Override
public void onFinish(ITestContext res)
(
)
// Run when the test case passed successfully
@Override
public void onTestSuccess(ITestResult res)
(
System.out.println("Test case passed is "+res.getName());
)
// Run when the test case fails
@Override
public void onTestFailure(ITestResult res)
(
System.out.println("Test case failed is "+res.getName());
)
// Run when test case pass with some failures
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult res)
(
System.out.println("Test case passed with failure is "+res.getName());
)
// Run when the test case is skipped
@Override
public void onTestSkipped(ITestResult res)
(
System.out.println("Test case skipped is :"+res.getName());
)
)

Korak 2: Nato moramo zgornjega poslušalca implementirati v običajni program za prijavo Java v aplikaciji, ki ima metode @test s pripisom @Listeners.

Razred: Testiranje.java

Koda:

package Demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
@Listeners(Demo.TestListener.class)
public class Testing
(
String driverPath =
"C:\\Users\\username\\Downloads\\Compressed\\geckodriver.exe";
public WebDriver driver;
@BeforeMethod
public void startBrowser() (
System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
driver= new FirefoxDriver();
)
// Test case to login an application which will pass .
@Test
public void LoginMethod()
(
driver.get("http://testing-ground.scraping.pro/login"); driver.findElement(By.id("usr")).sendKeys("admin");
driver.findElement(By.id("pwd")).sendKeys("123");
driver.findElement(By.xpath("//*(@id=\"case_login\")/form/input(3)")).
click();
)
// Test case for failure in order to check the working of listener.
@Test
public void FailMethod()
(
System.out.println("Forcefully making the method to fail");
Assert.assertTrue(false);
)
)

3. korak: Zdaj lahko v datoteko XML dodamo vnos razreda, kot je ta spodaj:

Koda:





Izhod:

2. Lahko uporabimo neposredno dodajanje poslušalcev v datoteko XML.

Čeprav zgornji pristop dodajanja @listeners v posebne razredne naloge v paketu, ki ima toliko razredov, se ne šteje za prijeten pristop, da bi poslušalca dodali v vsak razred. Namesto tega lahko ustvarimo vnos poslušalcev in razredov v datoteko XML.

1. korak: Ustvarjanje razreda poslušalca v Javi, ki izvaja program ITestListener in preglasi njegove metode, podobne zgornjim.

Razred: TestListener.java

Koda:

package Demo;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class TestListener implements ITestListener
(
@Override
public void onTestStart(ITestResult res)
(
System.out.println("Started test case is "+ res.getName());
)
@Override
public void onStart(ITestContext res)
(
)
@Override
public void onFinish(ITestContext res)
(
)
// Run when the test case passed successfully
@Override
public void onTestSuccess(ITestResult res)
(
System.out.println("Test case passed is "+res.getName());
)
// Run when the test case fails
@Override
public void onTestFailure(ITestResult res)
(
System.out.println("Test case failed is "+res.getName());
)
// Run when test case pass with some failures
@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult res)
(
System.out.println("Test case passed with failure is "+res.getName());
)
// Run when the test case is skipped
@Override
public void onTestSkipped(ITestResult res)
(
System.out.println("Test case skipped is :"+res.getName());
)
)

Korak 2: Nato moramo ustvariti običajen program Java za prijavo v aplikacijo z vsemi metodami @test in ni treba uporabljati pripisov @Listeners.

Razred: Testiranje.java

Koda:

package Demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
public class Testing
(
String driverPath = "C:\\Users\\username\\Downloads\\Compressed\\geckodriver.exe";
public WebDriver driver;
@BeforeMethod
public void startBrowser() (
System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
driver= new FirefoxDriver();
)
// Test case to login an application which will pass.
@Test
public void LoginMethod()
(
driver.get("http://testing-ground.scraping.pro/login"); driver.findElement(By.id("usr")).sendKeys("admin");
driver.findElement(By.id("pwd")).sendKeys("123");
driver.findElement(By.xpath("//*(@id=\"case_login\")/form/input(3)")).
click();
)
// Test case for failure in order to check the working of listener.
@Test
public void FailMethod()
(
System.out.println("Forcefully making the method to fail");
Assert.assertTrue(false);
)
)

Korak 3: Zdaj lahko v datoteko XML dodamo vnos poslušalca in razreda, kot je ta spodaj:

Koda:







Izhod:

Zaključek

Zgoraj opis poslušalcev jasno daje osnovno razumevanje poslušalcev in kako se izvajajo v programu Java, da prilagodijo dnevnike in poročila. Pred uporabo katerega koli poslušalca je treba jasno razumeti vse poslušalce in posebne scenarije, v katerih jih je treba uporabiti, skupaj z metodami, ki jih preglasijo.

Priporočeni članki

To je vodnik za poslušalce v TestNG. Tukaj razpravljamo o metodah poslušalcev v TestNG in dveh načinih ustvarjanja poslušalcev v TestNG. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Namestite TestNG
  2. AngularJS Dogodki
  3. Kaj je XPath?
  4. Testiranje okvirov za Javo
  5. Napomene Java
  6. Prevladovanje v Javi