TestNG Slušatelji unutra Selenium


Dva su glavna slušatelja.

  1. WebDriver slušatelji
  2. TestNG slušatelji

U ovom vodiču raspravljat ćemo o Testng Slušatelji.

U čemu je Slušatelji TestNG?

Slušatelj je definiran kao sučelje koje mijenja zadane postavke TestNGponašanje. Kao što ime sugerira, slušatelji "slušaju" događaj definiran u selenium skripti i ponašaju se u skladu s tim. Koristi se u selenu implementacijom sučelja slušatelja. Omogućuje prilagodbu TestNG izvješća ili dnevnika. Postoje mnoge vrste TestNG dostupnih slušatelja.

Slušatelji unutra TestNG

Vrste slušatelja u TestNG

Postoje mnoge vrste slušatelja koji vam omogućuju promjenu TestNGponašanje.

Ispod je nekoliko TestNG slušatelji:

  1. IAnnotationTransformer ,
  2. IAnnotationTransformer2 ,
  3. Ikonfigurabilno,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. Zakačiv ,
  7. IInvokedMethodListener ,
  8. IInvokedMethodListener2 ,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener .

Gornje sučelje se zove TestNG Slušatelji. Ta se sučelja koriste u selenu za generiranje zapisa ili prilagodbu TestNG hrturizam.hr

U ovom vodiču ćemo implementirati ITestListener.

ITestListener ima sljedeće metode

  • OnStart- Metoda OnStart poziva se kada započne bilo koji test.
  • onTestSuccess- onTestSuccess metoda se poziva na uspjeh bilo kojeg testa.
  • onTestFailure- Metoda onTestFailure poziva se u slučaju neuspjeha bilo kojeg testa.
  • onTestSkipped- onTestSkipped metoda se poziva kada se preskoči bilo koji test.
  • onTestFailedButWithinSuccessPercentage- metoda se poziva svaki put kada Test ne uspije, ali je unutar postotka uspješnosti.
  • onFinish- Metoda onFinish se poziva nakon što se izvrše svi testovi.

Testni scenarij

U ovom testnom scenariju automatizirat ćemo proces prijave i implementirati 'ItestListener'.

  1. Pokrenite Firefox i otvorite stranicu https://demo.guru99.com/V4/
  2. Testni scenarij

  3. Prijavite se u aplikaciju.
  4. Testni scenarij

Koraci za stvaranje a TestNG slušalac

Za gornji testni scenarij implementirat ćemo Slušatelj.

Korak 1) Napravite klasu "ListenerTest" koja implementira "ITestListener". Pomaknite miš preko crvenog teksta i Eclipse predložit će vam 2 brza rješenja kao što je prikazano na donjem zaslonu:

Koraci za stvaranje a TestNG slušalac

Samo kliknite na "Dodaj neprimijenjene metode". Višestruke neimplementirane metode (bez tijela) dodane su kodu. Provjerite ispod-

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

Modificirajmo klasu 'ListenerTest'. Konkretno, izmijenit ćemo sljedeće metode-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

Modifikacija je jednostavna. Ispisujemo samo naziv testa.

Dnevnici se kreiraju u konzoli. Korisniku je lako razumjeti koji test ima status prolaza, pada ili preskoka.

Nakon izmjene, kod izgleda ovako-

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

}			

Korak 2) Napravite drugu klasu "TestCases" za automatizaciju procesa prijave. Selenium će izvršiti ove 'TestCases' za automatsku prijavu.

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

Korak 3) Zatim implementirajte ovaj slušatelj u našu uobičajenu klasu projekta, tj. "TestCases". Postoje dva različita načina povezivanja s klasom i sučeljem.

Prvi način je korištenje napomene slušatelja (@Slušatelji) kao što je prikazano u nastavku:

@Listeners(Listener_Demo.ListenerTest.class)

Ovo koristimo u klasi "TestCases" kao što je prikazano u nastavku.

Dakle, konačno klasa ” TestCases ” izgleda nakon korištenja anotacije Slušatelja:

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

Struktura projekta izgleda ovako:

Koraci za stvaranje a TestNG slušalac

Korak 4): Izvršite klasu “TestCases”. Metode u klasi “ListenerTest” pozivaju se automatski prema ponašanju metoda označenih kao @Test.

Korak 5): Provjerite izlaz koji se bilježi prikazan na konzoli.

Izlaz 'TestCases' će izgledati ovako:

Koraci za stvaranje a TestNG slušalac

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

Korištenje Slušatelja za više klasa.

Ako projekt ima više klasa, dodavanje slušatelja svakoj od njih moglo bi biti glomazno i ​​sklono pogreškama.

U takvim slučajevima možemo stvoriti testng.xml i dodati oznaku slušatelja u XML-u.

Korištenje slušatelja za više razreda

Ovaj slušač implementiran je u cijelom paketu testova bez obzira na broj klasa koje imate. Kada pokrenete ovu XML datoteku, slušatelji će raditi na svim spomenutim klasama. Također možete deklarirati bilo koji broj klasa slušatelja.

Rezime

Od slušatelja se traži generiranje zapisa ili prilagodba TestNG izvješća u Selenium Webdriver.

  • Postoje mnoge vrste slušatelja i mogu se koristiti prema zahtjevima.
  • Slušatelji su sučelja koja se koriste u selenium web drajveru
  • Pokazao korištenje Listener-a u Selenium
  • Implementirao je slušatelje za više klasa