TestNG Lyttere inn Selenium


Det er to hovedlyttere.

  1. WebDriver-lyttere
  2. TestNG lyttere

I denne opplรฆringen vil vi diskutere om Testng Lyttere.

Hva er lyttere i TestNG?

Listener er definert som grensesnitt som endrer standarden TestNGsin oppfรธrsel. Som navnet antyder Lyttere "lytter" til hendelsen definert i selenmanuset og oppfรธrer seg deretter. Det brukes i selen ved รฅ implementere Listeners Interface. Det tillater tilpasning TestNG rapporter eller logger. Det finnes mange typer TestNG lyttere tilgjengelig.

Lyttere inn TestNG

Typer av lyttere i TestNG

Det er mange typer lyttere som lar deg endre TestNGsin oppfรธrsel.

Nedenfor er de fรฅ TestNG lyttere:

  1. IAnnotationTransformer ,
  2. IAnnotationTransformer2 ,
  3. IKonfigurerbar,
  4. IConfigurationListener ,
  5. IExecutionListener,
  6. Hookable ,
  7. IInvokedMethodListener ,
  8. IInvokedMethodListener2 ,
  9. ImethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener .

Grensesnittet ovenfor kalles TestNG Lyttere. Disse grensesnittene brukes i selen for รฅ generere logger eller tilpasse TestNG rapporter.

I denne opplรฆringen vil vi implementere ITestListener.

ITestListener har fรธlgende metoder

  • OnStart- OnStart-metoden kalles nรฅr en test starter.
  • onTestSuccess- onTestSuccess-metoden kalles pรฅ suksessen til enhver test.
  • onTestFailure- onTestFailure-metoden kalles ved feil pรฅ en test.
  • pรฅ test hoppet over- onTestSkipped-metoden kalles ved hoppet over en hvilken som helst test.
  • onTestFailedButWithinSuccessPercentage- metoden kalles hver gang Test mislykkes, men er innenfor suksessprosenten.
  • pรฅ Finish- onFinish-metoden kalles etter at alle testene er utfรธrt.

Testscenario

I dette testscenarioet vil vi automatisere pรฅloggingsprosessen og implementere 'ItestListener'.

  1. Start Firefox og รฅpne siden https://demo.guru99.com/V4/
  2. Testscenario

  3. Logg inn pรฅ applikasjonen.
  4. Testscenario

Trinn for รฅ lage en TestNG lytteren

For testscenarioet ovenfor vil vi implementere Listener.

Trinn 1) Lag klassen "ListenerTest" som implementerer 'ITestListener'. Flytt musen over tekst med rรธd linje, og Eclipse vil foreslรฅ deg 2 hurtigreparasjoner som vist pรฅ skjermen nedenfor:

Trinn for รฅ lage en TestNG lytteren

Bare klikk pรฅ "Legg til uimplementerte metoder". Flere uimplementerte metoder (uten kropp) legges til koden. Sjekk nedenfor-

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				
        		
    }		
}		

La oss endre 'ListenerTest'-klassen. Spesielt vil vi endre fรธlgende metoder-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

Modifikasjonen er enkel. Vi skriver bare ut navnet pรฅ testen.

Logger opprettes i konsollen. Det er lett for brukeren รฅ forstรฅ hvilken test som er bestรฅtt, ikke bestรฅtt og hopp over.

Etter endring ser koden ut som-

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());					
    }		

}			

Trinn 2) Opprett en annen klasse "TestCases" for automatisering av pรฅloggingsprosessen. Selenium vil utfรธre denne 'TestCases' for รฅ logge pรฅ automatisk.

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);			
}		
}

Trinn 3) Deretter implementerer du denne lytteren i vรฅr vanlige prosjektklasse, dvs. "TestCases". Det er to forskjellige mรฅter รฅ koble til klassen og grensesnittet pรฅ.

Den fรธrste mรฅten er รฅ bruke lytternes kommentarer (@Listeners) som vist nedenfor:

@Listeners(Listener_Demo.ListenerTest.class)

Vi bruker dette i klassen "TestCases" som vist nedenfor.

Sรฅ endelig ser klassen "TestCases" ut etter รฅ ha brukt Lytter-kommentar:

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);			
}		
}			

Prosjektstrukturen ser slik ut:

Trinn for รฅ lage en TestNG lytteren

Trinn 4): Kjรธr klassen "TestCases". Metoder i klassen "ListenerTest" kalles automatisk i henhold til oppfรธrselen til metoder som er annotert som @Test.

Trinn 5): Bekreft at utdataene som logger vises pรฅ konsollen.

Utdata fra 'TestCases' vil se slik ut:

Trinn for รฅ lage en TestNG lytteren

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

Bruk av Listener for flere klasser.

Hvis prosjektet har flere klasser, kan det vรฆre vanskelig รฅ legge til lyttere til hver av dem.

I slike tilfeller kan vi lage en testng.xml og legge til lytter-tag i XML.

Bruk av lytter for flere klasser

Denne lytteren er implementert i hele testpakken uavhengig av antall klasser du har. Nรฅr du kjรธrer denne XML-filen, vil lytterne fungere pรฅ alle nevnte klasser. Du kan ogsรฅ deklarere et hvilket som helst antall lytterklasser.

Sammendrag

Lyttere er pรฅlagt รฅ generere logger eller tilpasse TestNG rapporterer i Selenium Webdriver.

  • Det finnes mange typer lyttere og kan brukes etter behov.
  • Lyttere er grensesnitt som brukes i selen-nettdriverskript
  • Demonstrerte bruken av Listener i Selenium
  • Implementerte lytterne for flere klasser

Oppsummer dette innlegget med: