Johdanto TestNG: n kuuntelijoille

Ennen kuin ymmärrät Kuuntelijat TestNG: ssä ensin, tutkimme Kuuntelijoita ja TestNG: tä erikseen. Toisinaan haluamme muuttaa TestNG: n käyttäytymistä sovelluksessamme ja tämä voidaan tehdä käyttöliittymien avulla. Nämä käyttöliittymät, jotka auttavat käyttäjää tekemään niin, kutsutaan Kuuntelijoiksi. Kuten nimestä voi päätellä, 'Kuuntelijoiden' ensisijainen tehtävä on kuunnella määriteltyä tapahtumaa ja reagoida sen mukaan. Päätarkoitus, jota ohjelmoijat käyttävät kuuntelijoita, on lokien luominen ja mukautettujen raporttien luominen määritellyn skenaarion mukaisesti.

TestNG: ssä on erityyppisiä kuuntelijoita ja kukin kuuntelija palvelee eri tarkoitustaan. Jotkut niistä mainitaan alla:

  1. IConfigurable
  2. IAnnotationTransformer
  3. IHookable
  4. iReporter
  5. ISuiteListener

Kuuntelijoiden menetelmät TestNG: ssä

Vaikka TestNG: ssä on paljon kuulijoita, ja jokaisella kuuntelijalla on erityiset menetelmät, jotka ohitetaan. Keskustelemme 2 suosituinta kuuntelijaa ja menetelmiä, jotka he ovat ohittaneet:

1. ITestListener

ITestListener on yksi seleenin Webdriverin yleisimmin käyttämistä kuuntelijoista. Ohjelmoijan tarvitsee vain toteuttaa ITestListener-käyttöliittymä ja ohittaa kaikki tämän käyttöliittymän menetelmät sen käyttämiseksi. Se soittaa ennen jokaista sarjassa olevaa testiä ja sen jälkeen. Siinä on useita menetelmiä, jotka mainitaan jäljempänä:

  • onStart: Tämä on ensimmäinen ja tärkein menetelmä, jota kutsutaan testiluokan toteutuksen jälkeen. Sitä voidaan käyttää myös hakemiston hakemiseen, josta testi on käynnissä.
  • onFinish: Tämä on viimeinen menetelmä, jota kutsutaan, kun kaikki ohitetut menetelmät on tehty.
  • onTestStart (ITestResult tulos): Tätä menetelmää kutsutaan joka kerta ennen uutta testimenetelmää. Se osoittaa, että vaadittu testimenetelmä on aloitettu.
  • onTestFailure (ITestResult tulos): Tätä menetelmää kutsutaan, kun jokin testimenetelmä epäonnistuu, koska se osoittaa testin epäonnistumiset. Voimme suorittaa tiettyjä tehtäviä testin epäonnistumisesta, kuten kuvakaappauksen ottaminen, kun tietty testi epäonnistuu saadaksemme syvemmän kuvan epäonnistumisesta.
  • onTestSkipped (ITestResult tulos): Tätä menetelmää kutsutaan, kun jokin testimenetelmä ohitetaan suorittamista varten.
  • onTestSuccess (ITestResult tulos): Tätä menetelmää kutsutaan, kun tietty testimenetelmä suoritetaan onnistuneesti. Ohjelmoija voi suorittaa minkä tahansa halutun toimenpiteen testimenetelmän onnistumisesta kirjoittamalla koodin tämän menetelmän sisään.
  • onTestFailedButWithinSuccessPercentage (ITestResult tulos): Tätä menetelmää kutsutaan, kun jokin testimenetelmä epäonnistuu jollakin onnistumisprosentilla. Esimerkiksi, se edustaa tapausta, jos jokin testimenetelmä suoritetaan 10 kertaa ja epäonnistuu 5 kertaa. Se vie 2 parametria, ts. SuccessPercentage ja invocationCount. Edellä mainitussa tapauksessa menestysprosentti olisi 50 ja kutsujen lukumäärä olisi 10.

2. ISuiteListener

Toisin kuin ITestListener, joka toteutetaan jokaisen testimenetelmän jälkeen, ISuiteListener toteutetaan Suite-tasolla. Sillä on kaksi ohitettua menetelmää:

  • onStart: Tämä menetelmä toteutetaan ennen testipaketin kutsumista, mikä tarkoittaa, että kaikki sen sisälle kirjoitettu koodi suoritetaan ennen minkä tahansa paketin alkua.
  • onFinish: Tämä menetelmä otetaan käyttöön testisarjan kutsumisen jälkeen, mikä tarkoittaa, että kaikki sen sisälle kirjoitettu koodi on ajettu koko testisarjan suorittamisen jälkeen.

Kuinka luoda kuulijoita TestNG: hen?

TestNG: ssä on periaatteessa 2 tapa luoda kuulijoita:

1. Voimme käyttää luokan sisällä @Listeners-käyttöliittymää.

Vaihe 1: Ensimmäinen ja tärkein vaihe on luoda kuuntelijalle tarkoitettu luokka, joka toteuttaa ITestListener-ohjelman ja ohittaa kaikki edellä selitetyt menetelmät.

Luokka: TestListener.java

Koodi:

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());
)
)

Vaihe 2: Seuraavaksi meidän on toteutettava yllä oleva kuuntelija normaaliin Java-ohjelmaan sisäänkirjautumiseen sovelluksessa, jolla on @test-menetelmät käyttämällä @Listeners-merkintää.

Luokka: Testaus.java

Koodi:

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);
)
)

Vaihe 3: Nyt voimme lisätä luokan merkinnän XML-tiedostoon kuten alla oleva:

Koodi:





lähtö:

2. Voimme käyttää Lisää kuuntelijoita XML-tiedostoon suoraan.

Vaikka edellä mainittua lähestymistapaa lisätä @listeners tiettyyn luokkatyöhön sarjassa, jossa on niin paljon luokkia, ei pidetä mukavana lähestymistapana lisätä kuuntelija jokaisessa luokassa. Sen sijaan voimme luoda Kuuntelijoiden ja luokkien merkinnät XML-tiedostoon.

Vaihe 1: Luo Java-kuuntelijaluokka, joka toteuttaa ITestListener-sovelluksen ja ohittaa sen menetelmät, jotka ovat samanlaisia ​​kuin edellä.

Luokka: TestListener.java

Koodi:

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());
)
)

Vaihe 2: Seuraavaksi meidän on luotava normaali sisäänkirjautumisen Java-ohjelma sovellukseen, jolla on kaikki @test-menetelmät, eikä @Listeners-merkintää tarvitse käyttää.

Luokka: Testaus.java

Koodi:

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);
)
)

Vaihe 3: Nyt voimme lisätä kuuntelijan ja luokan merkinnän XML-tiedostoon kuten alla:

Koodi:







lähtö:

johtopäätös

Kuuntelijoiden kuvauksen yläpuolella antaa selvästi perustiedot kuuntelijoille ja kuinka ne toteutetaan Java-ohjelmassa lokien ja raporttien mukauttamiseksi. Ennen minkään kuuntelijan käyttämistä vaaditaan selkeä ymmärtäminen kaikilta kuuntelijoilta ja erityiset skenaariot, joissa heitä on käytettävä ohitettavien menetelmien ohella.

Suositellut artikkelit

Tämä on opas kuuntelijoille TestNG: ssä. Tässä keskustellaan TestNG: n Kuuntelijoiden menetelmistä ja kahdesta tapaa luoda Kuuntelijoita TestNG: ssä. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. Asenna TestNG
  2. AngularJS -tapahtumat
  3. Mikä on XPath?
  4. Testaa Java-kehyksiä
  5. Java-merkinnät
  6. Ylivoimainen Java