TestNG Kuulajad sisse Selenium: ITestListener & ITestResult näide
Peamisi kuulajaid on kaks.
- WebDriveri kuulajad
- TestNG Kuulajad
Selles õpetuses räägime sellest Testng Kuulajad.
Milles on kuulajad TestNG?
Kuulaja on määratletud kui liides, mis muudab vaikeseadet TestNGkäitumist. Nagu nimigi viitab, kuulajad "kuulavad" seleeni skriptis määratletud sündmust ja käituvad vastavalt. Seda kasutatakse seleenis kuulajate liidese rakendamisel. See võimaldab kohandada TestNG aruanded või logid. On palju liike TestNG kuulajad saadaval.
Kuulajate tüübid TestNG
Kuulajaid on mitut tüüpi, mis võimaldab teil muuta TestNGkäitumist.
Allpool on toodud mõned TestNG kuulajad:
- IAnnotationTransformer,
- IAnnotationTransformer2 ,
- ISeadistatav,
- IConfigurationListener,
- IExecutionListener,
- Haagitav,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener .
Ülaltoodud liidest nimetatakse TestNG Kuulajad. Neid liideseid kasutatakse seleenis logide loomiseks või nende kohandamiseks TestNG aruandeid.
Selles õpetuses rakendame ITestListenerit.
ITestListeneril on järgmised meetodid
- Alguses- OnStart-meetod kutsutakse välja, kui mis tahes test käivitub.
- onTestSuccess- meetodit onTestSuccess kutsutakse esile mis tahes testi õnnestumisel.
- onTestFailure- meetodit onTestFailure kutsutakse välja mis tahes testi ebaõnnestumisel.
- onTestSkipped- meetodit onTestSkipped kutsutakse iga testi vahelejätmisel.
- onTestFailedButWithin SuccessPercentage- meetodit kutsutakse välja iga kord, kui test ebaõnnestub, kuid jääb edukuse protsendi piiresse.
- lõpus- Meetod onFinish kutsutakse välja pärast kõigi testide täitmist.
Testi stsenaarium
Selles testistsenaariumis automatiseerime sisselogimisprotsessi ja rakendame 'ItestListeneri'.
- Käivitage Firefox ja avage sait https://demo.guru99.com/V4/
- Logige rakendusse sisse.
Loomise sammud a TestNG Kuulaja
Ülaltoodud teststsenaariumi puhul rakendame kuulaja.
Step 1) Looge klass "ListenerTest", mis rakendab "ITestListeneri". Liigutage kursor punase joonega teksti kohale ja Eclipse soovitab teile kahte kiirparandust, nagu on näidatud alloleval ekraanil:
Klõpsake lihtsalt nuppu "Lisa rakendamata meetodid". Koodile lisatakse mitu rakendamata meetodit (ilma kehata). Kontrollige allpool -
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 } }
Muudame klassi "ListenerTest". Eelkõige muudame järgmisi meetodeid:
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
Modifikatsioon on lihtne. Trükime lihtsalt testi nime.
Logid luuakse konsoolis. Kasutajal on lihtne aru saada, milline test on sooritatud, ebaõnnestunud ja vahele jäetud.
Pärast muutmist näeb kood välja selline
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) Looge sisselogimisprotsessi automatiseerimiseks veel üks klass "TestCases". Selenium käivitab selle 'TestCases', et automaatselt sisse logida.
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("https://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) Järgmisena rakendage see kuulaja meie tavalises projektiklassis, st "TestCases". Klassi ja liidesega ühenduse loomiseks on kaks erinevat viisi.
Esimene võimalus on kasutada kuulajate annotatsiooni (@Listeners), nagu allpool näidatud:
@Listeners(Listener_Demo.ListenerTest.class)
Me kasutame seda klassis "TestCases", nagu allpool näidatud.
Nii et lõpuks näeb klass "TestCases" välja selline, nagu pärast kuulaja annotatsiooni kasutamist:
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("https://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); } }
Projekti struktuur näeb välja selline:
Samm 4): Käivitage klass "TestCases". Klassi “ListenerTest” olevad meetodid kutsutakse automaatselt välja vastavalt @Test märkega meetodite käitumisele.
Samm 5): Kontrollige konsoolil kuvatavat väljundit.
"TestCases" väljund näeb välja selline:
[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]
Kuulaja kasutamine mitme klassi jaoks.
Kui projektil on mitu klassi, võib kuulajate lisamine igaühele neist olla tülikas ja veaohtlik.
Sellistel juhtudel saame luua testng.xml ja lisada kuulajate sildi XML-i.
Seda kuulajat rakendatakse kogu testikomplektis, olenemata teie klasside arvust. Kui käivitate selle XML-faili, töötavad kuulajad kõigi mainitud klassidega. Saate deklareerida ka suvalise arvu kuulajaklassi.
kokkuvõte
Kuulajad peavad looma logisid või kohandama TestNG aruanded aastal Selenium Veebidraiver.
- Kuulajaid on mitut tüüpi ja neid saab kasutada vastavalt nõuetele.
- Kuulajad on seleeni veebidraiveri skriptis kasutatavad liidesed
- Näitas Listeneri kasutamist aastal Selenium
- Rakendas kuulajaid mitme klassi jaoks