TestNG Hallgatók be Selenium: ITestListener & ITestResult példa


Két fő hallgató van.

  1. WebDriver figyelők
  2. TestNG hallgatók

Ebben az oktatóanyagban arról fogunk beszélni Testng Hallgatók.

Miben vannak a Hallgatók TestNG?

A figyelő olyan interfész, amely módosítja az alapértelmezést TestNGviselkedése. Ahogy a neve is sugallja, a hallgatók „meghallgatják” a szelén szkriptben meghatározott eseményt, és ennek megfelelően viselkednek. Szelénben használják a Listeners Interface megvalósításával. Lehetővé teszi a testreszabást TestNG jelentések vagy naplók. Sok fajta létezik TestNG hallgatók állnak rendelkezésre.

Hallgatók be TestNG

A hallgatók típusai TestNG

Sokféle hallgató létezik, amelyek lehetővé teszik a TestNGviselkedése.

Az alábbiakban néhány TestNG hallgatók:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2 ,
  3. Ikonfigurálható,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. Megfogható,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2 ,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener.

A fenti interfész ún TestNG Hallgatók. Ezeket az interfészeket a szelénben használják naplók generálására vagy a TestNG jelentéseket.

Ebben az oktatóanyagban az ITestListenert fogjuk megvalósítani.

Az ITestListener a következő módszerekkel rendelkezik

  • OnStart- Az OnStart metódus meghívásra kerül, amikor bármely teszt elindul.
  • onTestSuccess- Az onTestSuccess metódus bármely teszt sikeressége esetén meghívásra kerül.
  • onTestFailure- Az onTestFailure metódus bármely teszt sikertelensége esetén meghívásra kerül.
  • onTestSkipped- Az onTestSkipped metódus bármely teszt kihagyásakor meghívásra kerül.
  • onTestFailedButWithinSuccessPercentage- A módszer minden alkalommal meghívásra kerül, amikor a teszt sikertelen, de a sikerességi százalékon belül van.
  • a végén- Az onFinish metódus az összes teszt végrehajtása után kerül meghívásra.

Teszt forgatókönyv

Ebben a tesztforgatókönyvben automatizáljuk a bejelentkezési folyamatot, és megvalósítjuk az „ItestListener”-t.

  1. Indítsa el a Firefox és nyissa meg az oldalt http://demo.guru99.com/V4/
  2. Teszt forgatókönyv

  3. Jelentkezzen be az alkalmazásba.
  4. Teszt forgatókönyv

Létrehozásának lépései a TestNG hallgató

A fenti tesztforgatókönyvhöz a Listenert implementáljuk.

Step 1) Hozzon létre egy „ListenerTest” osztályt, amely megvalósítja az „ITestListener”-t. Vigye az egeret a piros vonalú szöveg fölé, és Eclipse két gyorsjavítást javasol az alábbi képernyőn látható módon:

A létrehozás lépései a TestNG hallgató

Csak kattintson a „Nem implementált módszerek hozzáadása” gombra. Több implementálatlan metódus (törzs nélkül) hozzáadódik a kódhoz. Ellenőrizze lent -

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

Módosítsuk a 'ListenerTest' osztályt. Különösen a következő módszereket fogjuk módosítani:

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

A módosítás egyszerű. Csak kinyomtatjuk a teszt nevét.

A naplók a konzolban jönnek létre. A felhasználó könnyen megértheti, hogy melyik teszt sikeres, sikertelen és kihagyott állapot.

A módosítás után a kód így néz ki:

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) Hozzon létre egy másik „TestCases” osztályt a bejelentkezési folyamat automatizálásához. Selenium végrehajtja ezt a „TestCases”-t az automatikus bejelentkezéshez.

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("http://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) Ezután implementálja ezt a figyelőt a szokásos projektosztályunkban, azaz a „TestCases”-ben. Két különböző módon lehet csatlakozni az osztályhoz és az interfészhez.

Az első módszer a Listeners annotáció (@Listeners) használata az alábbiak szerint:

@Listeners(Listener_Demo.ListenerTest.class)

Ezt a „TestCases” osztályban használjuk, az alábbiak szerint.

Tehát végül a "TestCases" osztály így néz ki a Listener annotáció használata utá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;             		

@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("http://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);			
}		
}			

A projekt felépítése így néz ki:

A létrehozás lépései a TestNG hallgató

4 lépés): Hajtsa végre a „TestCases” osztályt. A „ListenerTest” osztály metódusai automatikusan meghívódnak a @Test jelöléssel ellátott metódusok viselkedésének megfelelően.

5 lépés): Ellenőrizze a naplózó kimenetet a konzolon.

A „TestCases” kimenete így fog kinézni:

A létrehozás lépései a TestNG hallgató

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

A Listener használata több osztályhoz.

Ha a projektnek több osztálya van, a Figyelők hozzáadása mindegyikhez nehézkes és hibás lehet.

Ilyen esetekben létrehozhatunk egy testng.xml fájlt, és hozzáadhatunk figyelőket XML-ben.

A Listener használata több osztályhoz

Ez a figyelő az egész tesztcsomagban implementálva van, függetlenül az osztályok számától. Az XML-fájl futtatásakor a figyelők az összes említett osztályon fognak dolgozni. Tetszőleges számú hallgatói osztályt is deklarálhat.

Összegzésként

A figyelőknek naplókat kell létrehozniuk vagy testreszabniuk TestNG jelentések ben Selenium Webdriver.

  • Sokféle hallgató létezik, és igény szerint használhatók.
  • A figyelők a szelén webillesztőprogram-szkriptjében használt felületek
  • Bemutatta a Listener használatát Selenium
  • Megvalósította a Listeners-t több osztály számára