Bevezetés a hallgatókhoz a TestNG-ben

Mielőtt először megértenénk a Hallgatókat a TestNG-ben, külön tanulmányozjuk a Hallgatókat és a TestNG-t. Vannak idők, amikor módosítani szeretnénk a TestNG viselkedését alkalmazásunkban, és ezt az interfészek teszik lehetővé. Ezeket a felhasználói felületeket, amelyek megkönnyítik a felhasználót, hallgatóknak nevezzük. Ahogy a neve is sugallja, a 'hallgatók' elsődleges feladata az, hogy hallgassanak meg egy meghatározott eseményt, és azokra reagáljanak. A hallgatók által a programozók által használt fő cél naplók létrehozása és az egyedi jelentések létrehozása a meghatározott forgatókönyv szerint.

A TestNG-ben különféle hallgatók léteznek, és minden hallgató különféle célra szolgál. Néhányat az alábbiakban említik:

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

Hallgatók módszerei a TestNG-ben

Bár a TestNG-ben sok hallgató elérhető, és minden hallgató sajátos módszereket alkalmaz, amelyek felülbírálásra kerülnek. Beszéljük meg a 2 legnépszerűbb hallgatót és az általuk felülbírált módszereket:

1. ITestListener

Az ITestListener a szelén Webdriver egyik leggyakrabban használt hallgatója. A programozónak egyszerűen telepítenie kell az ITestListener felületet, és felül kell vizsgálnia ennek a felületnek a módszereit annak használatához. Felhívja a hívást a lakosztályban levő minden teszt előtt és után. Számos módszer létezik benne, amelyeket alább említünk:

  • onStart: Ez az első és legfontosabb módszer, amelyet a tesztosztály megjelenése után hívnak. Használható arra a könyvtárra is, amelyből a teszt fut.
  • onFinish: Ez az utolsó módszer, amelyet az összes felülbírált módszer elvégzése után hívnak.
  • onTestStart (ITestResult eredmény): Ezt a módszert minden új tesztelési módszer előtt meghívják . Ez azt jelzi, hogy elindult a szükséges vizsgálati módszer.
  • onTestFailure (ITestResult eredmény): Ezt a módszert akkor hívják meg, ha bármelyik tesztelési módszer meghiúsul, mivel jelzi a teszt kudarcait. Bizonyos feladatokat végrehajthatunk a teszt kudarca esetén, például a képernyőképet készíthetjük, amikor egy adott teszt kudarcot vall, hogy mélyebb betekintést nyerjünk a kudarcba.
  • onTestSkipped (ITestResult eredmény): Ezt a módszert akkor hívják meg, ha bármelyik tesztmódszert kihagyják a végrehajtáshoz.
  • onTestSuccess (ITestResult eredmény): Ezt a módszert akkor hívják meg, amikor egy adott teszt módszer sikeresen végrehajtódik. A programozó bármilyen kívánt műveletet végrehajthat a tesztelési módszer sikerén, ha kódot ír be a módszerbe.
  • onTestFailedButWithinSuccessPercentage (ITestResult eredmény): Ezt a módszert akkor hívják meg, ha bármelyik tesztelési módszer sikertelen valamilyen siker százalékban. Például ez az eset reprezentálja, ha bármelyik tesztmódszert tízszer hajtják végre, és ötször kudarcot vallnak. Két paramétert vesz igénybe, azaz successPercentage és invocationCount. A fenti esetben a siker százaléka 50 és az invocationCount 10 lenne.

2. ISuiteListener

Az ITestListener-rel ellentétben, amelyet minden tesztelési módszer után alkalmaznak, az ISuiteListener Suite szintjén van megvalósítva. Két módszerrel van felülbírálva:

  • onStart: Ezt a módszert a tesztkészlet meghívása előtt valósítják meg, ami azt jelenti, hogy az összes benne írott kódot a programkészlet indítása előtt futtatják.
  • onFinish: Ezt a módszert a tesztkészlet meghívása után valósítják meg, ami azt jelenti, hogy az egész benne írt kódot a teljes tesztkészlet futtatása után futtatják.

Hogyan hozzunk létre hallgatókat a TestNG-ben?

Alapvetően kétféle módon állíthatjuk elő a Hallgatókat a TestNG-ben:

1. Az @Listeners felületet az osztályon belül használhatjuk.

1. lépés: Az első és legfontosabb lépés egy olyan osztály létrehozása a hallgatók számára, amely az ITestListener alkalmazást valósítja meg, és felülbírálja az összes fent leírt módszert.

Osztály: 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());
)
)

2. lépés: Ezután be kell állítanunk a fenti figyelőt a normál bejelentkezési Java programba egy olyan alkalmazásban, amelyben a @test metódusokat használjuk, a @Listeners kommentár használatával.

Osztály: 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);
)
)

3. lépés: Most hozzáadhatjuk az osztály bejegyzését az XML fájlhoz, az alábbiak szerint:

Kód:





Kimenet:

2. Az XML fájlba közvetlenül hozzáadhatjuk a Hallgatókat.

Annak ellenére, hogy a fenti megközelítést alkalmazzuk, hogy a @listners egy olyan osztálykészlethez adjunk speciális osztálymunkát, amelyben annyi osztály van, a hallgató hozzáadása minden osztályhoz nem tekinthető kedvező megközelítésnek. Ehelyett létrehozhatjuk a Hallgatók és osztályok bejegyzését az XML fájlba.

1. lépés: Hozzon létre egy Figyelő osztályt a Java alkalmazásban az ITestListener megvalósításával, és felülírja annak módszereit, hasonlóan a fentiekhez.

Osztály: 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());
)
)

2. lépés: Ezután létre kell hoznunk egy normál Java programot a bejelentkezéshez az összes @test metódusú alkalmazásban, és nincs szükség a @Listeners kommentár használatára.

Osztály: 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);
)
)

3. lépés: Most hozzáadhatjuk a figyelő és osztály bejegyzését az XML fájlhoz, az alábbiak szerint:

Kód:







Kimenet:

Következtetés

A hallgatók leírása felett egyértelműen megismeri a hallgatók alapvető ismereteit és azt, hogy miként valósítják meg őket a Java programban a naplók és jelentések testreszabása érdekében. Bármely Hallgató használata előtt minden hallgató világos megértése szükséges, és meg kell határozni azokat a konkrét forgatókönyveket, amelyekben felhasználni kell őket, felülírva azokat a módszereket.

Ajánlott cikkek

Ez egy útmutató a hallgatók számára a TestNG-ben. Itt tárgyaljuk a hallgatók módszerét a TestNG-ben és a hallgatók létrehozásának két módját a TestNG-ben. Megnézheti más kapcsolódó cikkeinket, hogy többet megtudjon-

  1. Telepítse a TestNG-t
  2. AngularJS események
  3. Mi az XPath?
  4. Keretek tesztelése Java-hoz
  5. Java kommentárok
  6. A Java alapon érvényes

Kategória: