Úvod do posluchačů v TestNG

Před prvním porozuměním posluchačům v TestNG budeme studovat posluchače a TestNG samostatně. Jsou chvíle, kdy chceme změnit chování TestNG v naší aplikaci, a to lze provést pomocí rozhraní. Tato rozhraní, která uživateli pomáhají, se nazývají Posluchači. Jak název napovídá, primárním úkolem posluchačů je poslouchat událost definovanou a podle toho reagovat. Hlavním účelem, pro který jsou posluchače programátory používány, je vytváření protokolů a vytváření vlastních sestav podle konkrétního definovaného scénáře.

V TestNG jsou různé typy posluchačů a každý posluchač slouží jinému účelu. Některé z nich jsou uvedeny níže:

  1. IConfigurovatelné
  2. IAnnotationTransformer
  3. IHookable
  4. IReporter
  5. ISuiteListener

Metody posluchačů v TestNG

Přestože v TestNG je k dispozici mnoho posluchačů a každý posluchač má specifické metody, které jsou potlačeny. Pojďme diskutovat o 2 nejoblíbenějších posluchačích a metodách, které jsou potlačeny:

1. ITestListener

ITestListener je jedním z nejčastěji používaných posluchačů v Selenium Webdriver. Programátor jednoduše potřebuje implementovat rozhraní ITestListener a přepsat všechny metody tohoto rozhraní, aby jej mohl používat. Telefonuje před a po každém testu přítomném v soupravě. Existuje několik metod, které jsou uvedeny níže:

  • onStart: Toto je první a nejdůležitější metoda, která se volá po vytvoření instance testovací třídy. Může být také použit k načtení adresáře, ze kterého je test spuštěn.
  • onFinish: Toto je poslední metoda, která má být vyvolána po dokončení všech přepsaných metod.
  • onTestStart (výsledek ITestResult): Tato metoda se volá pokaždé před každou novou testovací metodou. Označuje, že je spuštěna požadovaná zkušební metoda.
  • onTestFailure (výsledek ITestResult): Tato metoda je volána, když je některá testovací metoda neúspěšná, protože označuje selhání testu. Můžeme provádět určité úkoly při selhání testu, jako je pořízení snímku obrazovky, když konkrétní test selže, abychom získali hlubší vhled do selhání.
  • onTestSkipped (výsledek ITestResult): Tato metoda se volá, když je jakákoli testovací metoda přeskočena k provedení.
  • onTestSuccess (výsledek ITestResult): Tato metoda se volá, když je konkrétní testovací metoda úspěšně provedena. Programátor může provádět jakoukoli požadovanou operaci úspěchu testovací metody tak, že do této metody zapíše kód.
  • onTestFailedButWithinSuccessPercentage (výsledek ITestResult): Tato metoda je volána, když je některá testovací metoda neúspěšná s určitým procentem úspěchu. Představuje například případ, kdy je některá zkušební metoda provedena 10krát a 5krát selhala. Trvá 2 parametry, tj. SuccessPercentage a invcationCount. Ve výše uvedeném případě by byla hodnota successPercentage 50 a hodnota vyvolání by byla 10.

2. ISuiteListener

Na rozdíl od ITestListener, který je implementován po každé testovací metodě, je ISuiteListener implementován na úrovni Suite. Má dvě metody, které jsou potlačeny:

  • onStart: Tato metoda je implementována před vyvoláním testovací sady, což znamená, že veškerý kód zapsaný v ní je spuštěn před začátkem jakékoli sady.
  • onFinish: Tato metoda je implementována po vyvolání testovací sady, což znamená, že veškerý kód zapsaný v ní je spuštěn po spuštění celé testovací sady.

Jak vytvořit posluchače v TestNG?

V TestNG jsou v zásadě dva způsoby, jak vytvořit posluchače:

1. V rámci třídy můžeme použít rozhraní @Listeners.

Krok 1: Prvním a nejdůležitějším krokem je vytvoření třídy pro Listener, která implementuje ITestListener a potlačuje všechny výše popsané metody.

Třída: 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: Dále musíme implementovat výše uvedený Listener v normálním Java Programu přihlášení do aplikace, která má metody @test pomocí anotace @Listeners.

Třída: 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: Nyní můžeme do souboru XML přidat položku třídy, jako je ta, která je uvedena níže:

Kód:





Výstup:

2. Můžeme použít přidat posluchače v XML souboru přímo.

Ačkoli výše uvedený přístup přidání @ listeners do konkrétní třídy v sadě, která má tolik tříd, není považováno za pěkný přístup přidat posluchače do každé třídy. Místo toho můžeme vytvořit záznam Posluchačů a tříd v souboru XML.

Krok 1: Vytvoření třídy posluchače v Javě implementací nástroje ITestListener a potlačení jeho metod podobných těm, které byly uvedeny výše.

Třída: 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: Dále musíme vytvořit normální Java program přihlášení v aplikaci, která má všechny metody @test a není třeba používat anotaci @Listeners.

Třída: 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: Nyní můžeme do souboru XML přidat položku posluchače a třídy, jako je ta, která je uvedena níže:

Kód:







Výstup:

Závěr

Nad popisem posluchačů je jasně uvedeno základní porozumění posluchačům a způsobu jejich implementace do programu Java, aby bylo možné přizpůsobit protokoly a zprávy. Před použitím jakéhokoli posluchače je nutné jasné porozumění všem posluchačům a konkrétním scénářům, ve kterých je třeba je použít, spolu s metodami, které potlačují.

Doporučené články

Toto je průvodce pro posluchače v TestNG. Zde diskutujeme metody posluchačů v TestNG a dva způsoby, jak vytvořit posluchače v TestNG. Další informace naleznete také v dalších souvisejících článcích.

  1. Nainstalujte TestNG
  2. AngularJS Events
  3. Co je XPath?
  4. Testovací rámce pro Javu
  5. Poznámky jazyka Java
  6. Převažující v Javě

Kategorie: