TestNG Kuulajad sisse Selenium: ITestListener & ITestResult näide


Peamisi kuulajaid on kaks.

  1. WebDriveri kuulajad
  2. 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.

Kuulajad sisse TestNG

Kuulajate tüübid TestNG

Kuulajaid on mitut tüüpi, mis võimaldab teil muuta TestNGkäitumist.

Allpool on toodud mõned TestNG kuulajad:

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

  1. Käivitage Firefox ja avage sait https://demo.guru99.com/V4/
  2. Testi stsenaarium

  3. Logige rakendusse sisse.
  4. Testi stsenaarium

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:

Loomise sammud a TestNG Kuulaja

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:

Loomise sammud a TestNG Kuulaja

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:

Loomise sammud a TestNG Kuulaja

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

Kuulaja kasutamine mitme klassi jaoks

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