TestNG Kuuntelijat sisään Selenium: ITestListener & ITestResult Esimerkki
Pääkuuntelijoita on kaksi.
- WebDriver-kuuntelijat
- TestNG kuuntelijoita
Tässä opetusohjelmassa keskustelemme aiheesta Testng Kuuntelijat.
Mitä kuuntelijat sisältävät TestNG?
Kuuntelija määritellään rajapinnaksi, joka muuttaa oletusarvoa TestNGn käyttäytymistä. Kuten nimestä voi päätellä, kuuntelijat "kuuntelevat" seleenikäsikirjoituksessa määriteltyä tapahtumaa ja käyttäytyvät sen mukaisesti. Sitä käytetään seleenissä toteuttamalla Listeners Interface. Se mahdollistaa mukauttamisen TestNG raportteja tai lokeja. Niitä on monenlaisia TestNG kuuntelijoita saatavilla.
Kuuntelijoiden tyypit TestNG
On olemassa monenlaisia kuuntelijoita, joiden avulla voit muuttaa TestNGn käytöksestä.
Alla muutama TestNG kuuntelijat:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- Ikonfiguroitavissa,
- IConfigurationListener,
- IExecutionListener,
- ihattava,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Above Interface kutsutaan TestNG Kuuntelijat. Näitä rajapintoja käytetään seleenissä lokien luomiseen tai niiden mukauttamiseen TestNG raporteissa.
Tässä opetusohjelmassa otamme käyttöön ITestListenerin.
ITestListenerillä on seuraavat menetelmät
- Aloitus- OnStart-menetelmää kutsutaan, kun mikä tahansa testi alkaa.
- onTestSuccess- onTestSuccess-menetelmää kutsutaan minkä tahansa testin onnistumiselle.
- onTestFailure- onTestFailure-menetelmää kutsutaan minkä tahansa testin epäonnistuessa.
- onTestSkipped- onTestSkipped-menetelmää kutsutaan minkä tahansa testin ohitettaessa.
- onTestFailedButWithinSuccessPercentage- menetelmää kutsutaan aina, kun testi epäonnistuu, mutta on onnistumisprosenttien sisällä.
- lopussa - onFinish-menetelmää kutsutaan, kun kaikki testit on suoritettu.
Testiskenaario
Tässä testiskenaariossa automatisoimme kirjautumisprosessin ja otamme käyttöön ItestListenerin.
- Käynnistä Firefox ja avaa sivusto https://demo.guru99.com/V4/
- Kirjaudu sovellukseen.
Luomisen vaiheet a TestNG kuuntelija
Yllä olevassa testiskenaariossa otamme Listenerin käyttöön.
Vaihe 1) Luo luokka "ListenerTest", joka toteuttaa "ITestListenerin". Siirrä hiiri punaviivatekstin päälle ja Eclipse ehdottaa sinulle 2 pikakorjausta alla olevan näytön mukaisesti:
Napsauta vain "Lisää toteuttamattomia menetelmiä". Koodiin lisätään useita toteuttamattomia menetelmiä (ilman runkoa). Tarkista alla -
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 } }
Muokataan 'ListenerTest' -luokkaa. Muutamme erityisesti seuraavia menetelmiä -
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.
Muokkaus on yksinkertainen. Tulostamme vain testin nimen.
Lokit luodaan konsolissa. Käyttäjän on helppo ymmärtää, mikä testi on hyväksytty, hylätty ja ohitettu.
Muokkauksen jälkeen koodi näyttää tältä
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()); } }
Vaihe 2) Luo toinen luokka "TestCases" kirjautumisprosessin automatisointia varten. Selenium suorittaa tämän "TestCases" kirjautuakseen automaattisesti sisää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; 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); } }
Vaihe 3) Ota seuraavaksi tämä kuuntelija käyttöön tavallisessa projektiluokassamme eli "TestCases". On kaksi eri tapaa muodostaa yhteys luokkaan ja käyttöliittymään.
Ensimmäinen tapa on käyttää Listeners-merkintää (@Listeners) alla olevan kuvan mukaisesti:
@Listeners(Listener_Demo.ListenerTest.class)
Käytämme tätä luokassa "TestCases" alla olevan kuvan mukaisesti.
Joten Lopulta luokka ”TestiCases” näyttää tältä Listener-merkinnän käytön jälkeen:
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); } }
Projektin rakenne näyttää tältä:
Vaihe 4): Suorita "TestCases" -luokka. Luokan “ListenerTest” menetelmiä kutsutaan automaattisesti @Test-merkinnällä merkittyjen menetelmien käyttäytymisen mukaan.
Vaihe 5): Tarkista konsolissa näkyvä lokitulostus.
"TestCases" -tulostus näyttää tältä:
[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]
Listenerin käyttö useille luokille.
Jos projektissa on useita luokkia, kuuntelijoiden lisääminen jokaiseen niistä voi olla hankalaa ja virhealtista.
Tällaisissa tapauksissa voimme luoda testng.xml:n ja lisätä kuuntelijatunnisteen XML:ään.
Tämä kuuntelija on toteutettu koko testipaketin aikana riippumatta siitä, kuinka monta luokkaa sinulla on. Kun suoritat tämän XML-tiedoston, kuuntelijat työskentelevät kaikissa mainituissa luokissa. Voit myös ilmoittaa minkä tahansa määrän kuuntelijaluokkaa.
Yhteenveto
Kuuntelijoiden on luotava lokeja tai mukautettava niitä TestNG raportteja Selenium Web-ajuri.
- Kuuntelijoita on monenlaisia, ja niitä voidaan käyttää vaatimusten mukaan.
- Kuuntelijat ovat rajapintoja, joita käytetään seleenin web-ohjainskriptissä
- Osoitti Listenerin käytön Selenium
- Otettu käyttöön Listeners useille luokille