TestNG Dinleyiciler Selenium


ฤฐki ana dinleyici var.

  1. WebDriver Dinleyicileri
  2. TestNG Dinleyiciler

Bu eฤŸitimde ลŸunlarฤฑ tartฤฑลŸacaฤŸฤฑz: Test Dinleyiciler.

Dinleyiciler Nedir? TestNG?

Dinleyici, varsayฤฑlanฤฑ deฤŸiลŸtiren arayรผz olarak tanฤฑmlanฤฑr TestNG'nin davranฤฑลŸฤฑ. Adฤฑndan da anlaลŸฤฑlacaฤŸฤฑ gibi, Dinleyiciler Selenium betiฤŸinde tanฤฑmlanan olayฤฑ "dinler" ve buna gรถre davranฤฑr. Selenium'da Dinleyiciler Arayรผzรผ uygulanarak kullanฤฑlฤฑr. ร–zelleลŸtirmeye izin verir TestNG raporlar veya gรผnlรผkler. Birรงok tรผrรผ var TestNG dinleyiciler mevcuttur.

Dinleyiciler TestNG

Dinleyici Tรผrleri TestNG

deฤŸiลŸtirmenize izin veren birรงok dinleyici tรผrรผ vardฤฑr. TestNGdavranฤฑลŸฤฑ.

AลŸaฤŸฤฑda birkaรงฤฑ var TestNG dinleyiciler:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2 ,
  3. Yapฤฑlandฤฑrฤฑlabilir,
  4. IConfigurationListener ,
  5. IExecutionListener,
  6. Kancalanabilir,
  7. IInvokedMethodListener ,
  8. IInvokedMethodListener2 ,
  9. IMethodInterceptor ,
  10. IR Muhabir,
  11. ISuiteListener,
  12. ITestListener .

Yukarฤฑdaki Arayรผz denir TestNG Dinleyiciler. Bu arayรผzler Selenium'da gรผnlรผkler oluลŸturmak veya รถzelleลŸtirmek iรงin kullanฤฑlฤฑr TestNG raporlar.

Bu eฤŸitimde ITestListener'ฤฑ uygulayacaฤŸฤฑz.

ITestListener'ฤฑn aลŸaฤŸฤฑdaki yรถntemleri vardฤฑr

  • OnStart- Herhangi bir Test baลŸladฤฑฤŸฤฑnda OnStart yรถntemi รงaฤŸrฤฑlฤฑr.
  • onTestSuccess- Herhangi bir Testin baลŸarฤฑsฤฑ รผzerine onTestSuccess yรถntemi รงaฤŸrฤฑlฤฑr.
  • onTestFailure- Herhangi bir Testin baลŸarฤฑsฤฑz olmasฤฑ durumunda onTestFailure yรถntemi รงaฤŸrฤฑlฤฑr.
  • onTestSkipped- onTestSkipped yรถntemi herhangi bir Testin atlanmasฤฑ durumunda รงaฤŸrฤฑlฤฑr.
  • onTestFailedButinSuccessPercentage- Test her baลŸarฤฑsฤฑz olduฤŸunda ancak baลŸarฤฑ yรผzdesi dahilinde olduฤŸunda yรถntem รงaฤŸrฤฑlฤฑr.
  • onFinish- Tรผm Testler yรผrรผtรผldรผkten sonra onFinish yรถntemi รงaฤŸrฤฑlฤฑr.

Test Senaryosu

Bu test senaryosunda GiriลŸ iลŸlemini otomatikleลŸtirip 'ItestListener'ฤฑ uygulayacaฤŸฤฑz.

  1. BaลŸlatฤฑn Firefox ve siteyi aรง https://demo.guru99.com/V4/
  2. Test Senaryosu

  3. Uygulamaya giriลŸ yapฤฑn.
  4. Test Senaryosu

OluลŸturma adฤฑmlarฤฑ TestNG dinleyici

Yukarฤฑdaki test senaryosu iรงin Listener'ฤฑ uygulayacaฤŸฤฑz.

) 1 Adฤฑm 'ITestListener'ฤฑ uygulayan โ€œListenerTestโ€ sฤฑnฤฑfฤฑnฤฑ oluลŸturun. Fareyi kฤฑrmฤฑzฤฑ รงizgili metnin รผzerine getirin ve Eclipse AลŸaฤŸฤฑdaki ekranda gรถsterildiฤŸi gibi size 2 hฤฑzlฤฑ dรผzeltme รถnerecektir:

OluลŸturma Adฤฑmlarฤฑ TestNG dinleyici

โ€œUygulanmayan yรถntemleri ekleโ€ seรงeneฤŸine tฤฑklamanฤฑz yeterlidir. Koda birden fazla uygulanmamฤฑลŸ yรถntem (gรถvde olmadan) eklenir. AลŸaฤŸฤฑyฤฑ kontrol edin-

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

'ListenerTest' sฤฑnฤฑfฤฑnฤฑ deฤŸiลŸtirelim. ร–zellikle, aลŸaฤŸฤฑdaki yรถntemleri deฤŸiลŸtireceฤŸiz-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

DeฤŸiลŸiklik basittir. Sadece Testin adฤฑnฤฑ yazdฤฑrฤฑyoruz.

Gรผnlรผkler konsolda oluลŸturulur. Kullanฤฑcฤฑnฤฑn hangi testin baลŸarฤฑlฤฑ, baลŸarฤฑsฤฑz ve atlanmฤฑลŸ durumu olduฤŸunu anlamasฤฑ kolaydฤฑr.

DeฤŸiลŸiklikten sonra kod ลŸรถyle gรถrรผnรผr:

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

}			

) 2 Adฤฑm Oturum aรงma iลŸlemi otomasyonu iรงin baลŸka bir "TestCases" sฤฑnฤฑfฤฑ oluลŸturun. Selenium otomatik olarak oturum aรงmak iรงin bu 'TestCases'i yรผrรผtecektir.

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

) 3 Adฤฑm Daha sonra bu dinleyiciyi normal proje sฤฑnฤฑfฤฑmฤฑz olan โ€œTestCasesโ€e uygulayฤฑn. Sฤฑnฤฑfa ve arayรผze baฤŸlanmanฤฑn iki farklฤฑ yolu vardฤฑr.

ฤฐlk yol, aลŸaฤŸฤฑda gรถsterildiฤŸi gibi Dinleyici ek aรงฤฑklamasฤฑnฤฑ (@Listeners) kullanmaktฤฑr:

@Listeners(Listener_Demo.ListenerTest.class)

Bunu aลŸaฤŸฤฑda gรถsterildiฤŸi gibi โ€œTestCasesโ€ sฤฑnฤฑfฤฑnda kullanฤฑyoruz.

Sonunda "TestCases" sฤฑnฤฑfฤฑ, Dinleyici ek aรงฤฑklamasฤฑnฤฑ kullandฤฑktan sonra ลŸuna benzer:

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

Proje yapฤฑsฤฑ ลŸรถyle gรถrรผnรผr:

OluลŸturma Adฤฑmlarฤฑ TestNG dinleyici

Adฤฑm 4): โ€œTestCasesโ€ sฤฑnฤฑfฤฑnฤฑ yรผrรผtรผn. โ€œListenerTestโ€ sฤฑnฤฑfฤฑndaki yรถntemler, @Test olarak aรงฤฑklamalฤฑ yรถntemlerin davranฤฑลŸฤฑna gรถre otomatik olarak รงaฤŸrฤฑlฤฑr.

Adฤฑm 5): Gรผnlรผklerin konsolda gรถrรผntรผlendiฤŸi ร‡ฤฑkฤฑลŸฤฑ doฤŸrulayฤฑn.

'TestCase'lerin รงฤฑktฤฑsฤฑ ลŸu ลŸekilde gรถrรผnecektir:

OluลŸturma Adฤฑmlarฤฑ TestNG dinleyici

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

Birden fazla sฤฑnฤฑf iรงin Dinleyici kullanฤฑmฤฑ.

Projenin birden fazla sฤฑnฤฑfฤฑ varsa, her birine Dinleyici eklemek hantal ve hataya aรงฤฑk olabilir.

Bu gibi durumlarda testng.xml oluลŸturup XML'e dinleyici etiketi ekleyebiliriz.

Birden Fazla Sฤฑnฤฑf iรงin Dinleyici Kullanฤฑmฤฑ

Bu dinleyici, sahip olduฤŸunuz sฤฑnฤฑf sayฤฑsฤฑna bakฤฑlmaksฤฑzฤฑn test paketinin tamamฤฑna uygulanฤฑr. Bu XML dosyasฤฑnฤฑ รงalฤฑลŸtฤฑrdฤฑฤŸฤฑnฤฑzda dinleyiciler bahsedilen tรผm sฤฑnฤฑflar รผzerinde รงalฤฑลŸacaktฤฑr. Ayrฤฑca istediฤŸiniz sayฤฑda dinleyici sฤฑnฤฑfฤฑnฤฑ da bildirebilirsiniz.

ร–ZET

Dinleyicilerin gรผnlรผk oluลŸturmasฤฑ veya รถzelleลŸtirmesi gerekir TestNG raporlar Selenium Web sรผrรผcรผsรผ.

  • Pek รงok dinleyici tรผrรผ vardฤฑr ve gereksinimlere gรถre kullanฤฑlabilir.
  • Dinleyiciler Selenium web sรผrรผcรผsรผ komut dosyasฤฑnda kullanฤฑlan arayรผzlerdir
  • Dinleyicinin kullanฤฑmฤฑnฤฑ gรถsterdi Selenium
  • Birden fazla sฤฑnฤฑf iรงin Dinleyiciler uygulandฤฑ

Bu yazฤฑyฤฑ ลŸu ลŸekilde รถzetleyin: