Introducere pentru ascultători în TestNG

Înainte de a înțelege ascultătorii în TestNG mai întâi, vom studia ascultătorii și TestNG separat. Există momente în care dorim să modificăm comportamentul TestNG în aplicația noastră, iar acest lucru poate fi realizat de Interfețe. Aceste interfețe care ajută utilizatorul să facă acest lucru sunt cunoscute sub numele de ascultători. După cum sugerează și numele, sarcina principală a „ascultătorilor este să asculte un eveniment definit și să reacționeze în funcție de acesta. Scopul principal pentru care ascultătorii sunt folosiți de programatori este de a crea jurnale și de a crea rapoarte personalizate în funcție de scenariul specific definit.

Există diferite tipuri de ascultători în TestNG și fiecare ascultător își îndeplinește scopul diferit. Unele dintre ele sunt menționate mai jos:

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

Metode de ascultători în TestNG

Deși există numeroși ascultători disponibili în TestNG și fiecare ascultător are metode specifice care sunt anulate. Să discutăm cei mai populari 2 ascultători și metodele care sunt suprasolicitate de aceștia:

1. ITestListener

ITestListener este unul dintre cei mai folosiți ascultători în Selenium Webdriver. Programatorul trebuie pur și simplu să implementeze interfața ITestListener și să înlocuiască toate metodele acestei interfețe pentru a o folosi. Face apelul înainte și după fiecare test prezent în suită. Există mai multe metode în care sunt menționate mai jos:

  • onStart: Aceasta este prima și mai importantă metodă care se numește după ce clasa de testare este instantanată. Poate fi folosit și pentru a prelua directorul din care se execută testul.
  • onFinish: Aceasta este ultima metodă care va fi apelată după ce toate metodele suprasolicitate sunt terminate.
  • onTestStart (rezultatul ITestResult): această metodă este apelată de fiecare dată înaintea oricărei noi metode de testare. Acesta indică faptul că o metodă de testare necesară este pornită.
  • onTestFailure (rezultatul ITestResult): această metodă este numită atunci când orice metodă de testare este eșuată, deoarece indică eșecurile testului. Putem efectua anumite sarcini în cazul eșecului testului, precum luarea capturii de ecran atunci când un anumit test nu reușește, pentru a obține o perspectivă mai profundă asupra eșecului.
  • onTestSkipped (rezultatul ITestResult): această metodă este numită atunci când orice metodă de testare este sărită pentru executare.
  • onTestSuccess (rezultatul ITestResult): această metodă se numește atunci când o anumită metodă de testare este executată cu succes. Programatorul poate efectua orice operație dorită pe succesul metodei de testare, scriind cod în cadrul acestei metode.
  • onTestFailedButWithinSuccessPercentage (rezultatul ITestResult): această metodă se numește atunci când orice metodă de testare a eșuat cu un procent de succes. De exemplu, reprezintă cazul, dacă orice metodă de testare este executată de 10 ori și a eșuat de 5 ori. Este nevoie de 2 parametri, adică succesPercentage și invocationCount. În cazul menționat mai sus, succesul central ar fi de 50, iar numărul de invocare va fi de 10.

2. ISuiteListener

Spre deosebire de ITestListener, care este implementat după fiecare metodă de testare, ISuiteListener este implementat la nivelul Suite. Are două metode care sunt anulate:

  • onStart: Această metodă este implementată înainte de invocarea suitei de testare, ceea ce înseamnă că tot codul scris în interiorul său este rulat înainte de începerea oricărei suite.
  • onFinish: Această metodă este implementată după invocarea suitei de testare, ceea ce înseamnă că tot codul scris în interiorul său este rulat după ce întregul set de teste este rulat.

Cum să creezi ascultători în TestNG?

Există în principiu 2 moduri de a crea ascultători în TestNG:

1. Putem folosi interfața @Listeners din cadrul clasei.

Pasul 1: Primul și primul pas este crearea unei clase pentru Listener care implementează ITestListener și care să treacă peste toate metodele sale explicate mai sus.

Clasa: TestListener.java

Cod:

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

Pasul 2: În continuare, trebuie să implementăm ascultătorul de mai sus în Programul Java normal de conectare într-o aplicație care are metodele @test folosind adnotarea @Listeners.

Clasa: Testing.java

Cod:

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

Pasul 3: Acum putem adăuga o intrare a clasei în fișierul XML ca cea dată mai jos:

Cod:





ieşire:

2. Putem folosi direct adăuga Ascultători în fișierul XML.

Deși abordarea de mai sus a adăugării @listeners în anumite clase de clasă într-o suită cu atât de multe clase, nu este considerată o abordare plăcută pentru a adăuga ascultătorul la fiecare clasă. În schimb, putem crea intrarea ascultătorilor și a claselor în fișierul XML.

Pasul 1: Crearea unei clase de ascultător în Java care implementează ITestListener și care trece peste metodele similare cu cele menționate mai sus.

Clasa: TestListener.java

Cod:

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

Pasul 2: În continuare, trebuie să creăm un program Java normal de conectare într-o aplicație care are toate metodele @test și nu este necesar să utilizăm adnotarea @Listeners.

Clasa: Testing.java

Cod:

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

Pasul 3: Acum putem adăuga o intrare a ascultătorului și a clasei în fișierul XML precum cea dată mai jos:

Cod:







ieşire:

Concluzie

Deasupra descrierii Ascultătorilor se oferă clar înțelegerea de bază a ascultătorilor și modul în care sunt implementate în programul Java pentru a personaliza jurnalele și rapoartele. Înainte de a folosi orice ascultător, este necesară o înțelegere clară a tuturor ascultătorilor și a scenariilor specifice în care aceștia trebuie folosiți împreună cu metodele pe care le înlocuiesc.

Articole recomandate

Acesta este un ghid pentru ascultătorii din TestNG. Aici discutăm metode de ascultători în TestNG și două moduri de a crea ascultători în TestNG. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Instalați TestNG
  2. Evenimente AngularJS
  3. Ce este XPath?
  4. Testarea cadrelor pentru Java
  5. Adnotări Java
  6. Suprasolicitare în Java