TestNG Kuuntelijat sisään Selenium: ITestListener & ITestResult Esimerkki


Pääkuuntelijoita on kaksi.

  1. WebDriver-kuuntelijat
  2. 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.

Kuuntelijat sisään TestNG

Kuuntelijoiden tyypit TestNG

On olemassa monenlaisia ​​kuuntelijoita, joiden avulla voit muuttaa TestNGn käytöksestä.

Alla muutama TestNG kuuntelijat:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. Ikonfiguroitavissa,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. ihattava,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. 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.

  1. Käynnistä Firefox ja avaa sivusto https://demo.guru99.com/V4/
  2. Testiskenaario

  3. Kirjaudu sovellukseen.
  4. Testiskenaario

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:

Luomisen vaiheet a TestNG kuuntelija

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ä:

Luomisen vaiheet a TestNG kuuntelija

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ä:

Luomisen vaiheet a TestNG kuuntelija

[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.

Kuuntelijan käyttö useille luokille

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

Päivittäinen Guru99-uutiskirje

Aloita päiväsi uusimmilla ja tärkeimmillä tekoälyuutisilla, jotka toimitetaan juuri nyt.