Selenium'da TestNG Dinleyicileri: ITestListener & ITestResult Örneği

İçindekiler:

Anonim

İki ana dinleyici vardır.

  1. WebDriver Dinleyicileri
  2. TestNG Dinleyicileri

Bu eğitimde Test Dinleyicileri hakkında tartışacağız. İşte öğreneceğiniz şey

  • TestNG'de Dinleyiciler nedir?
  • TestNG'de Dinleyici Türleri
  • Test Senaryosu:
  • TestNG Dinleyicisi oluşturma adımları
  • Birden çok sınıf için Dinleyici kullanımı.

TestNG'de Dinleyiciler nedir?

Dinleyici, varsayılan TestNG'nin davranışını değiştiren arabirim olarak tanımlanır. Adından da anlaşılacağı gibi Dinleyiciler selenyum senaryosunda tanımlanan olayı "dinler" ve buna göre davranırlar. Selenyumda Dinleyici Arabirimi uygulanarak kullanılır. TestNG raporlarının veya günlüklerinin özelleştirilmesine izin verir. Kullanılabilir birçok TestNG dinleyicisi türü vardır.

TestNG'de Dinleyici Türleri

TestNG'nin davranışını değiştirmenize izin veren birçok dinleyici türü vardır.

Aşağıda birkaç TestNG dinleyicisi verilmiştir:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. IConfigüre edilebilir,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. IReporter,
  11. ISuiteListener,
  12. ITestListener.

Yukarıdaki Arayüz TestNG Dinleyicileri olarak adlandırılır. Bu arayüzler, günlükler oluşturmak veya TestNG raporlarını özelleştirmek için selenyumda kullanılır.

Bu eğitimde, ITestListener'ı uygulayacağız.

ITestListener aşağıdaki yöntemlere sahiptir

  • OnStart- OnStart yöntemi, herhangi bir Test başladığında çağrılır.
  • onTestSuccess- onTestSuccess yöntemi, herhangi bir Testin başarısı üzerine çağrılır.
  • onTestFailure- onTestFailure yöntemi, herhangi bir Testin başarısız olması durumunda çağrılır.
  • onTestSkipped- onTestSkipped yöntemi, herhangi bir Testin atlanmasıyla çağrılır.
  • onTestFailedButWithinSuccessPercentage- yöntemi, Test her başarısız olduğunda çağrılır, ancak başarı yüzdesi içindedir.
  • onFinish- onFinish yöntemi, tüm Testler yürütüldükten sonra çağrılır.

Test Senaryosu:

Bu test senaryosunda, Giriş sürecini otomatikleştireceğiz ve 'ItestListener'ı uygulayacağız.

  1. Firefox'u başlatın ve "http://demo.guru99.com/V4/" sitesini açın
  1. Uygulamaya giriş yapın.

TestNG Dinleyicisi oluşturma adımları

Yukarıdaki test senaryosu için Dinleyici uygulayacağız.

Adım 1) 'ITestListener'ı uygulayan "ListenerTest" sınıfını oluşturun. Fareyi kırmızı çizgili metnin üzerine getirin ve Eclipse size aşağıdaki ekranda gösterildiği gibi 2 hızlı düzeltme önerecektir:

"Uygulanmamış yöntemler ekle" yi tıklamanız yeterlidir. Koda birden çok uygulanmamış yöntem (gövde olmadan) eklenir. Aşağıya bakın-

paket Listener_Demo;org.testng.ITestContext'i içe aktar;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest ITestListener'ı uygular{@Overridepublic void onFinish (ITestContext arg0) {// TODO Otomatik oluşturulan yöntem saplaması}@Overridepublic void onStart (ITestContext arg0) {// TODO Otomatik oluşturulan yöntem saplaması}@Overridepublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Otomatik oluşturulan yöntem saplaması}@Overridepublic void onTestFailure (ITestResult arg0) {// TODO Otomatik oluşturulan yöntem saplaması}@Overridepublic void onTestSkipped (ITestResult arg0) {// TODO Otomatik oluşturulan yöntem saplaması}@Overridepublic void onTestStart (ITestResult arg0) {// TODO Otomatik oluşturulan yöntem saplaması}@Overridepublic void onTestSuccess (ITestResult arg0) {// TODO Otomatik oluşturulan yöntem saplaması}}

'ListenerTest' sınıfını değiştirelim. Özellikle, aşağıdaki yöntemleri değiştireceğiz.

onTestFailure, onTestSkipped, onTestStart, onTestSuccess vb.

Değişiklik basittir. Sadece Testin adını yazdırıyoruz.

Konsolda günlükler oluşturulur. Kullanıcının hangi testin başarılı, başarısız ve atlama durumu olduğunu anlaması kolaydır.

Değişiklikten sonra kod şöyle görünür:

paket Listener_Demo;org.testng.ITestContext'i içe aktar;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest ITestListener'ı uygular{@Overridepublic void onFinish (ITestContext Sonucu){}@Overridepublic void onStart (ITestContext Sonucu){}@Overridepublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Test durumu başarısız olduğunda bu yöntem çağrılır.@Overridepublic void onTestFailure (ITestResult Result){System.out.println ("Başarısız olan test olayının adı: + Result.getName ());}// Test durumu Atlandığında, bu yöntem çağrılır.@Overridepublic void onTestSkipped (ITestResult Result){System.out.println ("Atlanan test senaryosunun adı: + Result.getName ());}// Test olayı Başladığında, bu yöntem çağrılır.@Overridepublic void onTestStart (ITestResult Result){System.out.println (Result.getName () + "test durumu başladı");}// Test senaryosu geçildiğinde bu yöntem çağrılır.@Overridepublic void onTestSuccess (ITestResult Result){System.out.println ("Geçilen test olayının adı: + Result.getName ());}}

Adım 2) 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.

paket 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;Org.testng.annotations.Test'i içe aktarın;public class TestCases {WebDriver sürücüsü = yeni FirefoxDriver ();// Dinleyicileri doğrulamak için geçmek için test edin.@Ölçekpublic void Giriş (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("parola")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). tıklayın ();}// Dinleyiciyi doğrulamak için bu testte zorla başarısız oldu.@Ölçekpublic void TestToFail (){System.out.println ("Başarısız olanı sınamak için bu yöntem");Assert.assertTrue (yanlış);}}

Adım 3) Sonra, bu dinleyiciyi normal proje sınıfımıza, yani "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 Dinleyiciler ek açıklamasını (@ Listeler) kullanmaktır:

@Listeners (Listener_Demo.ListenerTest.class) 

Bunu aşağıda gösterildiği gibi "TestCases" sınıfında kullanıyoruz.

Sonuç olarak, "TestCases" sınıfı, Dinleyici ek açıklaması kullanıldıktan sonra görünecektir:

paket 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 sürücüsü = yeni FirefoxDriver ();// Dinleyicileri doğrulamak için geçmek için test edin.@Ölçekpublic void Giriş (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("parola")). sendKeys ("amUpenu");driver.findElement (By.id ("")). tıklayın ();}// Bu test, doğrulama dinleyicisi olarak zorla başarısız oldu.@Ölçekpublic void TestToFail (){System.out.println ("Başarısız olanı sınamak için bu yöntem");Assert.assertTrue (yanlış);}}

Proje yapısı şöyle görünür:

Adım 4): "TestCases" sınıfını yürütün. "ListenerTest" sınıfındaki yöntemler, @Test olarak açıklanmış 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.

'TestCases'in çıktısı şu şekilde görünecektir:

[TestNG] Çalışıyor:C: \ Kullanıcılar \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlOturum Açma Testi Vakası başladıGeçilen test olayının adı: GirişTestToFail test durumu başladıBaşarısız test etmek için bu yöntemBaşarısız olan test olayının adı: TestToFailGEÇTİ: GirişBAŞARISIZ: TestToFailjava.lang.AssertionError: bekleniyordu [true] ancak bulundu [false] 

Birden çok sınıf için Dinleyici kullanımı.

Projede birden fazla sınıf varsa, her birine Dinleyici eklemek zahmetli ve hataya açık olabilir.

Bu gibi durumlarda, bir testng.xml oluşturabilir ve XML'de listeners etiketi ekleyebiliriz.

Bu dinleyici, sahip olduğunuz sınıfların sayısına bakılmaksızın test paketi boyunca uygulanır. Bu XML dosyasını çalıştırdığınızda, dinleyiciler bahsedilen tüm sınıflar üzerinde çalışacaktır. İstediğiniz sayıda dinleyici sınıfı da bildirebilirsiniz.

Özet:

Dinleyicilerin Selenium Webdriver'da günlükler oluşturması veya TestNG raporlarını özelleştirmesi gerekir.

  • Pek çok dinleyici türü vardır ve gereksinimlere göre kullanılabilir.
  • Dinleyiciler, selenyum web sürücüsü komut dosyasında kullanılan arayüzlerdir
  • Selenium'da Dinleyicinin kullanımını gösterdi
  • Listeners'ı birden çok sınıf için uyguladı