TestNG kuulajate sissejuhatus

Enne kuulajate mõistmist TestNG-s uurime kuulajaid ja TestNG-d eraldi. Mõnikord on soov muuta TestNG käitumist meie rakenduses ja seda saab teha liideste abil. Neid liideseid, mis abistavad kasutajat, nimetatakse kuulajateks. Nagu nimigi ütleb, on kuulajate esmane ülesanne kuulata määratletud sündmust ja reageerida vastavalt sellele. Peamine eesmärk, milleks programmeerijad kuulajaid kasutavad, on logide loomine ja kohandatud aruannete loomine vastavalt määratletud stsenaariumile.

TestNG-s on erinevat tüüpi kuulajaid ja iga kuulaja täidab oma erinevat eesmärki. Mõnda neist mainitakse allpool:

  1. IConfigurable
  2. IAnnotationTransformer
  3. IHotsitav
  4. IReporter
  5. ISuiteListener

Kuulajate meetodid TestNG-s

Ehkki TestNG-s on palju kuulajaid ja igal kuulajal on kindlad meetodid, mis on üle tähtsustatud. Arutleme 2 populaarseima kuulaja üle ja meetodid, mis on neist mööda vaadatud:

1. ITestListener

ITestListener on üks seleeni veebidriveri kõige sagedamini kasutatavaid kuulajaid. Programmeerija peab ITestListeneri liidese lihtsalt rakendama ja selle kasutamiseks kõik selle liidese meetodid üle kirjutama. See helistab enne ja pärast kõiki sviidis olevaid teste. Selles on mitu meetodit, mida mainitakse allpool:

  • onStart: see on esimene ja peamine meetod, mida kutsutakse pärast testklassi kiirendust. Seda saab kasutada ka kataloogi hankimiseks, kust test töötab.
  • onFinish: See on viimane meetod, mida kutsutakse pärast kõigi ülepakutud meetodite kasutamist.
  • onTestStart (ITestResult tulemus): Seda meetodit kutsutakse iga kord enne mis tahes uut testimismeetodit. See näitab, et vajalik testimismeetod on käivitatud.
  • onTestFailure (ITestResult tulemus): Seda meetodit nimetatakse siis, kui mõni testimismeetod ebaõnnestub, kuna see näitab testi tõrkeid. Testi ebaõnnestumise korral saame teatud ülesandeid täita, näiteks ekraanipildi tegemine, kui konkreetne test ebaõnnestub, et saada ebaõnnestumisest põhjalikumat teavet.
  • onTestSkipped (ITestResult tulemus): Seda meetodit kutsutakse siis, kui mõni testimisviis jäetakse täitmiseks vahele.
  • onTestSuccess (ITestResult tulemus): Seda meetodit kutsutakse siis, kui konkreetne testimismeetod on edukalt täidetud. Programmeerija saab katsemeetodi õnnestumiseks teha mis tahes soovitud toimingu, kirjutades selle meetodi sisse koodi.
  • onTestFailedButWithinSuccessPercentage (ITestResult tulemus): Seda meetodit kutsutakse siis, kui mõni testimismeetod ebaõnnestub mõne eduprotsendiga . Näiteks tähistab see juhtumit, kui mõnda testimismeetodit täidetakse kümme korda ja 5 korda nurjub. See võtab 2 parameetrit, st successPercentage ja invocationCount. Ülaltoodud juhul oleks edu protsent 50 ja kutsumiste arv 10.

2. ISuiteListener

Erinevalt ITestListenerist, mida rakendatakse pärast iga testimismeetodit, rakendatakse ISuiteListener Suite'i tasemel. Sellel on kaks meetodit, mis on mööda vaadatud:

  • onStart: Seda meetodit rakendatakse enne testkomplekti kutsumist, mis tähendab, et kogu selle sees kirjutatud kood käivitatakse enne mis tahes komplekti algust.
  • onFinish: Seda meetodit rakendatakse pärast testkomplekti kutsumist, mis tähendab, et kogu selle sees kirjutatud kood käivitatakse pärast kogu testkomplekti käivitamist.

Kuidas luua TestNG-s kuulajaid?

TestNG-s on kuulajate loomiseks põhimõtteliselt kaks viisi:

1. Saame klassis kasutada @Listeners liidest.

1. samm: esimene ja peamine samm on luua kuulaja jaoks klass, mis rakendab ITestListenerit ja alistab kõik selle ülalkirjeldatud meetodid.

Klass: TestListener.java

Kood:

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

2. samm: Järgmisena peame ülaltoodud kuulaja rakendama tavalises Java-sisselogimisprogrammis rakenduses, millel on @test-meetodeid kasutav rakendus @Listeners, kasutades annotatsiooni.

Klass: testimine.java

Kood:

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. samm: Nüüd saame lisada XML-faili klassi kirje, nagu allpool toodud:

Kood:





Väljund:

2. Saame kasutada XML-faili otsekuulajaid.

Kuigi ülaltoodud lähenemisviis lisada @listeners konkreetsetesse klassitöödesse komplekti, kus on nii palju klasse, ei peeta toredaks lähenemisviisiks kuulajate lisamist igasse klassi. Selle asemel saame luua XML-faili kuulajate ja klasside kirje.

1. samm: looge Java-s kuulajaklass, rakendades ITestListenerit ja ületades selle meetodeid, mis sarnanevad eelpool mainituga.

Klass: TestListener.java

Kood:

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

2. samm: Järgmisena peame looma rakenduses, millel on kõik @test-meetodid, sisselogimiseks tavalise Java-programmi ja pole vaja kasutada märkust @Listeners.

Klass: testimine.java

Kood:

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

3. samm: Nüüd saame lisada XML-faili kuulaja ja klassi kirje, nagu allpool toodud:

Kood:







Väljund:

Järeldus

Kuulajate kirjelduse kohal antakse selgelt põhiteadmised kuulajate kohta ja kuidas neid Java programmis rakendatakse, et logisid ja aruandeid kohandada. Enne ükskõik millise kuulaja kasutamist tuleb kõigilt kuulajatelt saada selge arusaam ja konkreetsed stsenaariumid, milles neid tuleb kasutada koos meetoditega, mida nad alistavad.

Soovitatavad artiklid

See on TestNG kuulajate juhend. Siin käsitleme TestNG-s kuulajate meetodeid ja kahte võimalust TestNG-s kuulajate loomiseks. Lisateavet leiate ka meie muudest seotud artiklitest -

  1. Installige TestNG
  2. AngularJS üritused
  3. Mis on XPath?
  4. Java testimine
  5. Java märkused
  6. Ülekaalus Java

Kategooria: