TestNG Hallgatók be Selenium: ITestListener & ITestResult példa
Két fő hallgató van.
- WebDriver figyelők
- TestNG hallgatók
Ebben az oktatóanyagban arról fogunk beszélni Testng Hallgatók.
Miben vannak a Hallgatók TestNG?
A figyelő olyan interfész, amely módosítja az alapértelmezést TestNGviselkedése. Ahogy a neve is sugallja, a hallgatók „meghallgatják” a szelén szkriptben meghatározott eseményt, és ennek megfelelően viselkednek. Szelénben használják a Listeners Interface megvalósításával. Lehetővé teszi a testreszabást TestNG jelentések vagy naplók. Sok fajta létezik TestNG hallgatók állnak rendelkezésre.
A hallgatók típusai TestNG
Sokféle hallgató létezik, amelyek lehetővé teszik a TestNGviselkedése.
Az alábbiakban néhány TestNG hallgatók:
- IAnnotationTransformer,
- IAnnotationTransformer2 ,
- Ikonfigurálható,
- IConfigurationListener,
- IExecutionListener,
- Megfogható,
- IInvokedMethodListener,
- IInvokedMethodListener2 ,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
A fenti interfész ún TestNG Hallgatók. Ezeket az interfészeket a szelénben használják naplók generálására vagy a TestNG jelentéseket.
Ebben az oktatóanyagban az ITestListenert fogjuk megvalósítani.
Az ITestListener a következő módszerekkel rendelkezik
- OnStart- Az OnStart metódus meghívásra kerül, amikor bármely teszt elindul.
- onTestSuccess- Az onTestSuccess metódus bármely teszt sikeressége esetén meghívásra kerül.
- onTestFailure- Az onTestFailure metódus bármely teszt sikertelensége esetén meghívásra kerül.
- onTestSkipped- Az onTestSkipped metódus bármely teszt kihagyásakor meghívásra kerül.
- onTestFailedButWithinSuccessPercentage- A módszer minden alkalommal meghívásra kerül, amikor a teszt sikertelen, de a sikerességi százalékon belül van.
- a végén- Az onFinish metódus az összes teszt végrehajtása után kerül meghívásra.
Teszt forgatókönyv
Ebben a tesztforgatókönyvben automatizáljuk a bejelentkezési folyamatot, és megvalósítjuk az „ItestListener”-t.
- Indítsa el a Firefox és nyissa meg az oldalt
http://demo.guru99.com/V4/
- Jelentkezzen be az alkalmazásba.
Létrehozásának lépései a TestNG hallgató
A fenti tesztforgatókönyvhöz a Listenert implementáljuk.
Step 1) Hozzon létre egy „ListenerTest” osztályt, amely megvalósítja az „ITestListener”-t. Vigye az egeret a piros vonalú szöveg fölé, és Eclipse két gyorsjavítást javasol az alábbi képernyőn látható módon:
Csak kattintson a „Nem implementált módszerek hozzáadása” gombra. Több implementálatlan metódus (törzs nélkül) hozzáadódik a kódhoz. Ellenőrizze lent -
package Listener_Demo; import org.testng.ITestContext ; import org.testng.ITestListener ; import org.testng.ITestResult ; public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext arg0) { // TODO Auto-generated method stub } @Override public void onStart(ITestContext arg0) { // TODO Auto-generated method stub } @Override public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestFailure(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestSkipped(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestStart(ITestResult arg0) { // TODO Auto-generated method stub } @Override public void onTestSuccess(ITestResult arg0) { // TODO Auto-generated method stub } }
Módosítsuk a 'ListenerTest' osztályt. Különösen a következő módszereket fogjuk módosítani:
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
A módosítás egyszerű. Csak kinyomtatjuk a teszt nevét.
A naplók a konzolban jönnek létre. A felhasználó könnyen megértheti, hogy melyik teszt sikeres, sikertelen és kihagyott állapot.
A módosítás után a kód így néz ki:
package Listener_Demo; import org.testng.ITestContext; import org.testng.ITestListener; import org.testng.ITestResult; public class ListenerTest implements ITestListener { @Override public void onFinish(ITestContext Result) { } @Override public void onStart(ITestContext Result) { } @Override public void onTestFailedButWithinSuccessPercentage(ITestResult Result) { } // When Test case get failed, this method is called. @Override public void onTestFailure(ITestResult Result) { System.out.println("The name of the testcase failed is :"+Result.getName()); } // When Test case get Skipped, this method is called. @Override public void onTestSkipped(ITestResult Result) { System.out.println("The name of the testcase Skipped is :"+Result.getName()); } // When Test case get Started, this method is called. @Override public void onTestStart(ITestResult Result) { System.out.println(Result.getName()+" test case started"); } // When Test case get passed, this method is called. @Override public void onTestSuccess(ITestResult Result) { System.out.println("The name of the testcase passed is :"+Result.getName()); } }
Step 2) Hozzon létre egy másik „TestCases” osztályt a bejelentkezési folyamat automatizálásához. Selenium végrehajtja ezt a „TestCases”-t az automatikus bejelentkezéshez.
package Listener_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 TestCases { WebDriver driver= new FirefoxDriver(); // Test to pass as to verify listeners . @Test public void Login() { driver.get("http://demo.guru99.com/V4/"); driver.findElement(By.name("uid")).sendKeys("mngr34926"); driver.findElement(By.name("password")).sendKeys("amUpenu"); driver.findElement(By.name("btnLogin")).click(); } // Forcefully failed this test as to verify listener. @Test public void TestToFail() { System.out.println("This method to test fail"); Assert.assertTrue(false); } }
Step 3) Ezután implementálja ezt a figyelőt a szokásos projektosztályunkban, azaz a „TestCases”-ben. Két különböző módon lehet csatlakozni az osztályhoz és az interfészhez.
Az első módszer a Listeners annotáció (@Listeners) használata az alábbiak szerint:
@Listeners(Listener_Demo.ListenerTest.class)
Ezt a „TestCases” osztályban használjuk, az alábbiak szerint.
Tehát végül a "TestCases" osztály így néz ki a Listener annotáció használata után:
package Listener_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(Listener_Demo.ListenerTest.class) public class TestCases { WebDriver driver= new FirefoxDriver(); //Test to pass as to verify listeners. @Test public void Login() { driver.get("http://demo.guru99.com/V4/"); driver.findElement(By.name("uid")).sendKeys("mngr34926"); driver.findElement(By.name("password")).sendKeys("amUpenu"); driver.findElement(By.id("")).click(); } //Forcefully failed this test as verify listener. @Test public void TestToFail() { System.out.println("This method to test fail"); Assert.assertTrue(false); } }
A projekt felépítése így néz ki:
4 lépés): Hajtsa végre a „TestCases” osztályt. A „ListenerTest” osztály metódusai automatikusan meghívódnak a @Test jelöléssel ellátott metódusok viselkedésének megfelelően.
5 lépés): Ellenőrizze a naplózó kimenetet a konzolon.
A „TestCases” kimenete így fog kinézni:
[TestNG] Running: C:\Users\gauravn\AppData\Local\Temp\testng-eclipse--1058076918\testng-customsuite.xml Login Test Case started The name of the testcase passed is:Login TestToFail test case started This method to test fail The name of the testcase failed is:TestToFail PASSED: Login FAILED: TestToFail java.lang.AssertionError: expected [true] but found [false]
A Listener használata több osztályhoz.
Ha a projektnek több osztálya van, a Figyelők hozzáadása mindegyikhez nehézkes és hibás lehet.
Ilyen esetekben létrehozhatunk egy testng.xml fájlt, és hozzáadhatunk figyelőket XML-ben.
Ez a figyelő az egész tesztcsomagban implementálva van, függetlenül az osztályok számától. Az XML-fájl futtatásakor a figyelők az összes említett osztályon fognak dolgozni. Tetszőleges számú hallgatói osztályt is deklarálhat.
Összegzésként
A figyelőknek naplókat kell létrehozniuk vagy testreszabniuk TestNG jelentések ben Selenium Webdriver.
- Sokféle hallgató létezik, és igény szerint használhatók.
- A figyelők a szelén webillesztőprogram-szkriptjében használt felületek
- Bemutatta a Listener használatát Selenium
- Megvalósította a Listeners-t több osztály számára