Úvod do poslucháčov v TestNG

Pred prvým pochopením poslucháčov v TestNG budeme študovať poslucháčov a TestNG osobitne. Sú chvíle, keď chceme zmeniť správanie TestNG v našej aplikácii, a to je možné pomocou rozhraní. Tieto rozhrania, ktoré používateľovi pomáhajú, sa nazývajú poslucháči. Ako už názov napovedá, primárnou úlohou poslucháčov je počúvať udalosť definovanú a podľa toho reagovať. Hlavným účelom, pre ktorý programátori používajú poslucháčov, je vytváranie protokolov a vytváranie vlastných zostáv podľa konkrétneho definovaného scenára.

V TestNG sú rôzne typy poslucháčov a každý poslucháč slúži svojmu inému účelu. Niektoré z nich sú uvedené nižšie:

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

Metódy poslucháčov v TestNG

V TestNG je k dispozícii veľa poslucháčov a každý poslucháč má špecifické metódy, ktoré sú potlačené. Poďme diskutovať o 2 najpopulárnejších poslucháčoch a metódach, ktoré sú nimi potlačené:

1. ITestListener

ITestListener je jedným z najčastejšie používaných poslucháčov v Selenium Webdriver. Programátor jednoducho potrebuje implementovať rozhranie ITestListener a prepísať všetky metódy tohto rozhrania, aby ho mohol používať. Telefonuje pred a po každom teste v apartmáne. Existuje niekoľko metód, ktoré sú uvedené nižšie:

  • onStart: Toto je prvá a najdôležitejšia metóda, ktorá sa volá po vytvorení testovacej triedy. Môže sa tiež použiť na načítanie adresára, z ktorého je test spustený.
  • onFinish: Toto je posledná metóda, ktorá sa má volať po dokončení všetkých prepísaných metód.
  • onTestStart (výsledok ITestResult): Táto metóda sa volá zakaždým pred každou novou testovacou metódou. Znamená to, že sa začala požadovaná testovacia metóda.
  • onTestFailure (výsledok ITestResult): Táto metóda sa volá, keď zlyhá ktorákoľvek testovacia metóda, pretože naznačuje zlyhanie testu. Pri zlyhaní testu môžeme vykonávať určité úlohy, ako je napríklad snímanie snímky obrazovky, keď určitý test zlyhá, aby sme získali hlbší prehľad o zlyhaní.
  • onTestSkipped (výsledok ITestResult): Táto metóda sa volá, keď je ktorákoľvek testovacia metóda preskočená na vykonanie.
  • onTestSuccess (výsledok ITestResult): Táto metóda sa volá, keď je konkrétna testovacia metóda úspešne vykonaná. Programátor môže vykonať akúkoľvek požadovanú operáciu úspechu testovacej metódy tak, že do nej zapíše kód.
  • onTestFailedButWithinSuccessPercentage (výsledok ITestResult): Táto metóda sa volá, keď zlyhá ktorákoľvek testovacia metóda s určitým percentom úspešnosti. Predstavuje to napríklad prípad, keď je testovacia metóda vykonaná 10-krát a zlyhala 5-krát. Trvá to 2 parametre, tj successPercentage a invcationCount. Vo vyššie uvedenom prípade by bolo percento úspechu 50 a suma vyvolania by bola 10.

2. ISuiteListener

Na rozdiel od ITestListener, ktorý je implementovaný po každej testovacej metóde, je ISuiteListener implementovaný na úrovni Suite. Má dve metódy, ktoré sú potlačené:

  • onStart: Táto metóda je implementovaná pred vyvolaním testovacej sady, čo znamená, že všetok kód napísaný v nej je spustený pred začiatkom akejkoľvek sady.
  • onFinish: Táto metóda je implementovaná po vyvolaní testovacej sady, čo znamená, že všetok kód napísaný v nej je spustený po spustení celej testovacej sady.

Ako vytvoriť poslucháčov v TestNG?

V TestNG existujú v zásade dva spôsoby, ako vytvoriť poslucháčov:

1. V rámci triedy môžeme použiť rozhranie @Listeners.

Krok 1: Prvým a najdôležitejším krokom je vytvorenie triedy pre poslucháča, ktorá implementuje program ITestListener a má prednosť všetky vyššie uvedené metódy.

Trieda: TestListener.java

kód:

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

Krok 2: Ďalej musíme implementovať vyššie uvedený Listener do normálneho Java Programu prihlásenia do aplikácie, ktorá má metódy @test pomocou anotácie @ Listeners.

Trieda: Testing.java

kód:

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

Krok 3: Teraz môžeme do súboru XML pridať položku triedy, ako je tá, ktorá je uvedená nižšie:

kód:





Výkon:

2. Môžeme použiť pridať poslucháčov v súbore XML priamo.

Aj keď vyššie uvedený prístup spočívajúci v pridávaní @ listeners do konkrétnej triedy v súprave, ktorá má toľko tried, nepovažuje sa za pekný prístup pridať poslucháča do každej triedy. Namiesto toho môžeme vytvoriť záznam poslucháčov a tried v súbore XML.

Krok 1: Vytvorenie triedy Listener v Java implementáciou ITestListener a potlačenie jej metód podobných tým, ktoré sú uvedené vyššie.

Trieda: TestListener.java

kód:

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

Krok 2: Ďalej musíme vytvoriť normálny program Java pre prihlásenie v aplikácii, ktorá má všetky metódy @test a nie je potrebné používať anotáciu @Listeners.

Trieda: Testing.java

kód:

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

Krok 3: Teraz môžeme do súboru XML pridať položku poslucháča a triedy, ako je tá, ktorá je uvedená nižšie:

kód:







Výkon:

záver

Nad opisom poslucháčov jasne vyplýva základné porozumenie poslucháčov a ich implementácia do programu Java s cieľom prispôsobiť protokoly a správy. Pred použitím ktoréhokoľvek poslucháča je potrebné jasné porozumenie všetkých poslucháčov a konkrétnych scenárov, v ktorých sa musia použiť spolu s metódami, ktoré potlačujú.

Odporúčané články

Toto je príručka pre poslucháčov v TestNG. Tu diskutujeme metódy poslucháčov v TestNG a dva spôsoby, ako vytvoriť poslucháčov v TestNG. Viac informácií nájdete aj v ďalších súvisiacich článkoch.

  1. Nainštalujte TestNG
  2. AngularJS Events
  3. Čo je XPath?
  4. Skúšobné rámce pre Javu
  5. Poznámky jazyka Java
  6. Prevláda v Jave

Kategórie: