TestNG Listeners dalam Selenium: ITestListener & Contoh ITestResult

Daftar Isi:

Anonim

Ada dua pendengar utama.

  1. Pendengar WebDriver
  2. TestNG Listeners

Dalam tutorial ini, kita akan membahas tentang Testng Listeners. Inilah yang akan Anda pelajari-

  • Apa Pendengar di TestNG?
  • Jenis Pendengar di TestNG
  • Skenario Uji:
  • Langkah-langkah untuk membuat Pemroses TestNG
  • Penggunaan Pendengar untuk beberapa kelas.

Apa Pendengar di TestNG?

Pendengar didefinisikan sebagai antarmuka yang mengubah perilaku TestNG default. Seperti namanya, Pendengar "mendengarkan" acara yang ditentukan dalam skrip selenium dan berperilaku sesuai. Ini digunakan dalam selenium dengan mengimplementasikan Antarmuka Pendengar. Ini memungkinkan menyesuaikan laporan atau log TestNG. Ada banyak jenis pendengar TestNG yang tersedia.

Jenis Pendengar di TestNG

Ada banyak jenis pendengar yang memungkinkan Anda mengubah perilaku TestNG.

Di bawah ini adalah beberapa pendengar TestNG:

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

Antarmuka di atas disebut TestNG Listeners. Antarmuka ini digunakan di selenium untuk menghasilkan log atau menyesuaikan laporan TestNG.

Dalam tutorial ini, kami akan mengimplementasikan ITestListener.

ITestListener memiliki metode berikut

  • OnStart- Metode OnStart dipanggil ketika Tes apa pun dimulai.
  • Metode onTestSuccess- onTestSuccess dipanggil pada keberhasilan Tes apa pun.
  • Metode onTestFailure- onTestFailure dipanggil jika Tes apa pun gagal.
  • Metode onTestSkipped- onTestSkipped dipanggil saat melewatkan Test apa pun.
  • onTestFailedButWithinSuccessPercentage- metode dipanggil setiap kali Tes gagal tetapi dalam persentase keberhasilan.
  • onFinish- metode onFinish dipanggil setelah semua Pengujian dijalankan.

Skenario Uji:

Dalam skenario pengujian ini, kami akan mengotomatiskan proses Login dan mengimplementasikan 'ItestListener'.

  1. Luncurkan Firefox dan buka situs "http://demo.guru99.com/V4/"
  1. Masuk ke aplikasi.

Langkah-langkah untuk membuat Pemroses TestNG

Untuk skenario pengujian di atas, kami akan menerapkan Pendengar.

Langkah 1) Buat kelas "ListenerTest" yang mengimplementasikan 'ITestListener'. Gerakkan mouse ke atas teks garis merah, dan Eclipse akan menyarankan Anda 2 perbaikan cepat seperti yang ditunjukkan pada layar di bawah ini:

Cukup klik "Tambahkan metode yang tidak diterapkan". Beberapa metode yang tidak diimplementasikan (tanpa body) ditambahkan ke kode. Periksa di bawah-

paket Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest mengimplementasikan ITestListener{@Mengesampingkanpublic void onFinish (ITestContext arg0) {// TODO Rintisan metode yang dibuat secara otomatis}@Mengesampingkanpublic void onStart (ITestContext arg0) {// TODO Rintisan metode yang dibuat secara otomatis}@Mengesampingkanpublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Rintisan metode yang dibuat secara otomatis}@Mengesampingkanpublic void onTestFailure (ITestResult arg0) {// TODO Rintisan metode yang dibuat secara otomatis}@Mengesampingkanpublic void onTestSkipped (ITestResult arg0) {// TODO Rintisan metode yang dibuat secara otomatis}@Mengesampingkanpublic void onTestStart (ITestResult arg0) {// TODO Rintisan metode yang dibuat secara otomatis}@Mengesampingkanpublic void onTestSuccess (ITestResult arg0) {// TODO Rintisan metode yang dibuat secara otomatis}}

Mari kita ubah kelas 'ListenerTest'. Secara khusus, kami akan memodifikasi metode berikut-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, dll.

Modifikasinya sederhana. Kami baru saja mencetak nama Tes.

Log dibuat di konsol. Sangat mudah bagi pengguna untuk memahami tes mana yang merupakan status lulus, gagal, dan lewati.

Setelah modifikasi, kodenya terlihat seperti-

paket Listener_Demo;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;public class ListenerTest mengimplementasikan ITestListener{@Mengesampingkanpublic void onFinish (ITestContext Result){}@Mengesampingkanpublic void onStart (Hasil ITestContext){}@Mengesampingkanpublic void onTestFailedButWithinSuccessPercentage (Hasil ITestResult){}// Ketika Test case gagal, metode ini dipanggil.@Mengesampingkanpublic void onTestFailure (Hasil ITestResult){System.out.println ("Nama testcase gagal adalah: + Result.getName ());}// Ketika Test case dilewati, metode ini dipanggil.@Mengesampingkanpublic void onTestSkipped (Hasil ITestResult){System.out.println ("Nama testcase yang dilewati adalah: + Result.getName ());}// Ketika Test case dimulai, metode ini dipanggil.@Mengesampingkanpublic void onTestStart (Hasil ITestResult){System.out.println (Result.getName () + "kasus uji dimulai");}// Ketika Test case dilewati, metode ini dipanggil.@Mengesampingkanpublic void onTestSuccess (Hasil ITestResult){System.out.println ("Nama testcase yang lolos adalah: + Result.getName ());}}

Langkah 2) Buat kelas lain "TestCases" untuk otomatisasi proses login. Selenium akan menjalankan 'TestCases' ini untuk login secara otomatis.

paket Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;Impor org.testng.annotations.Test;TestCases kelas publik {Driver WebDriver = FirefoxDriver baru ();// Uji untuk lulus untuk memverifikasi pendengar.@Ujipublic 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 ();}// Gagal paksa dalam pengujian ini untuk memverifikasi pendengar.@Ujipublic void TestToFail (){System.out.println ("Metode pengujian ini gagal");Assert.assertTrue (false);}}

Langkah 3) Selanjutnya, implementasikan listener ini di kelas proyek reguler kami yaitu "TestCases". Ada dua cara berbeda untuk terhubung ke kelas dan antarmuka.

Cara pertama adalah dengan menggunakan anotasi Listeners (@Listeners) seperti yang ditunjukkan di bawah ini:

@Listeners (Pendengaro.ListenerTest.class) 

Kami menggunakan ini di kelas "TestCases" seperti yang ditunjukkan di bawah ini.

Jadi Akhirnya kelas "TestCases" terlihat seperti setelah menggunakan anotasi Listener:

paket Listener_Demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Listeners;import org.testng.annotations.Test;@Listeners (Pendengaro.ListenerTest.class)TestCases kelas publik {Driver WebDriver = FirefoxDriver baru ();// Uji untuk lulus untuk memverifikasi pendengar.@Ujipublic 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 ("")). klik ();}// Gagal paksa dalam pengujian ini sebagai pemroses verifikasi.@Ujipublic void TestToFail (){System.out.println ("Metode pengujian ini gagal");Assert.assertTrue (false);}}

Struktur proyek terlihat seperti:

Langkah 4): Jalankan kelas "TestCases". Metode dalam kelas "ListenerTest" dipanggil secara otomatis sesuai dengan perilaku metode yang dianotasi sebagai @Test.

Langkah 5): Verifikasi Output yang ditampilkan log di konsol.

Output dari 'TestCases' akan terlihat seperti ini:

[TestNG] Berjalan:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlKasus Uji Masuk dimulaiNama testcase yang lolos adalah: LoginKasus uji TestToFail dimulaiMetode untuk menguji ini gagalNama testcase yang gagal adalah: TestToFailLULUS: LoginGAGAL: TestToFailjava.lang.AssertionError: diharapkan [benar] tetapi ditemukan [salah] 

Penggunaan Pendengar untuk beberapa kelas.

Jika proyek memiliki beberapa kelas, menambahkan Listeners ke masing-masing kelas bisa merepotkan dan rawan kesalahan.

Dalam kasus seperti itu, kita dapat membuat testng.xml dan menambahkan tag listener dalam XML.

Pemroses ini diterapkan di seluruh rangkaian pengujian terlepas dari jumlah kelas yang Anda miliki. Saat Anda menjalankan file XML ini, pendengar akan bekerja pada semua kelas yang disebutkan. Anda juga bisa mendeklarasikan sejumlah kelas pendengar.

Ringkasan:

Pendengar harus membuat log atau menyesuaikan laporan TestNG di Selenium Webdriver.

  • Ada banyak jenis pendengar dan dapat digunakan sesuai kebutuhan.
  • Pendengar adalah antarmuka yang digunakan dalam skrip driver web selenium
  • Mendemonstrasikan penggunaan Listener di Selenium
  • Menerapkan Listeners untuk beberapa kelas