Pendengar TestNG di Selenium: ITestListener & Contoh ITestResult

Isi kandungan:

Anonim

Terdapat dua pendengar utama.

  1. Pendengar WebDriver
  2. Pendengar TestNG

Dalam tutorial ini, kita akan membincangkan mengenai Pendengar Testng. Inilah yang akan anda pelajari-

  • Apakah Pendengar dalam TestNG?
  • Jenis Pendengar dalam TestNG
  • Senario Ujian:
  • Langkah-langkah untuk membuat Pendengar TestNG
  • Penggunaan Pendengar untuk pelbagai kelas.

Apakah Pendengar dalam TestNG?

Pendengar didefinisikan sebagai antara muka yang mengubah tingkah laku TestNG lalai. Seperti namanya Pendengar "mendengarkan" acara yang ditentukan dalam skrip selenium dan bersikap sesuai. Ia digunakan dalam selenium dengan menerapkan Antaramuka Pendengar. Ia membenarkan penyesuaian laporan atau log TestNG. Terdapat banyak jenis pendengar TestNG yang ada.

Jenis Pendengar dalam TestNG

Terdapat banyak jenis pendengar yang membolehkan anda mengubah tingkah laku TestNG.

Berikut adalah beberapa pendengar TestNG:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. Dikonfigurasi,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. IHookable,
  7. IInvokedMethodListener,
  8. IInvokedMethodListener2,
  9. IMethodInterceptor,
  10. Pelapor,
  11. ISuiteListener,
  12. Pendaftar ITest.

Antaramuka di atas dipanggil Pendengar TestNG. Antaramuka ini digunakan dalam selenium untuk menghasilkan log atau menyesuaikan laporan TestNG.

Dalam tutorial ini, kami akan melaksanakan ITestListener.

ITestListener mempunyai kaedah berikut

  • Kaedah OnStart- OnStart dipanggil semasa Ujian dimulakan.
  • Kaedah onTestSuccess- onTestSuccess dipanggil kejayaan setiap Ujian.
  • Kaedah onTestFailure- onTestFailure dipanggil atas kegagalan sebarang Ujian.
  • Kaedah onTestSkipped- onTestSkipped dipanggil apabila dilangkau sebarang Ujian.
  • kaedah onTestFailedButWithinSuccessPercentage- dipanggil setiap kali Ujian gagal tetapi berada dalam peratusan kejayaan.
  • kaedah onFinish- onFinish dipanggil setelah semua Ujian dijalankan.

Senario Ujian:

Dalam senario ujian ini, kami akan mengautomasikan proses Login dan melaksanakan 'ItestListener'.

  1. Lancarkan Firefox dan buka laman web "http://demo.guru99.com/V4/"
  1. Log masuk ke aplikasi.

Langkah-langkah untuk membuat Pendengar TestNG

Untuk senario ujian di atas, kami akan melaksanakan Listener.

Langkah 1) Buat kelas "ListenerTest" yang menerapkan 'ITestListener'. Gerakkan tetikus ke atas teks garis semula, dan Eclipse akan mencadangkan anda 2 pembaikan cepat seperti yang ditunjukkan dalam skrin di bawah:

Cukup klik pada "Tambah kaedah yang tidak dilaksanakan". Beberapa kaedah yang tidak dilaksanakan (tanpa badan) ditambahkan pada kod. Lihat di bawah-

Listener_Demo pakej;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;ListenerTest kelas awam melaksanakan ITestListener{@Selamatkekosongan awam onFinish (ITestContext arg0) {// TODO Kaedah penjanaan automatik}@Selamatkekosongan awam diStart (ITestContext arg0) {// TODO Kaedah penjanaan automatik}@Selamatkekosongan awam onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// TODO Kaedah penjanaan automatik}@Selamatkekosongan awam onTestFailure (ITestResult arg0) {// TODO Kaedah penjanaan automatik}@Selamatkekosongan awam onTestSkipped (ITestResult arg0) {// TODO Kaedah penjanaan automatik}@Selamatkekosongan awam onTestStart (ITestResult arg0) {// TODO Kaedah penjanaan automatik}@Selamatkekosongan awam onTestSuccess (ITestResult arg0) {// TODO Kaedah penjanaan automatik}}

Mari ubah suai kelas 'ListenerTest'. Khususnya, kami akan mengubah kaedah berikut-

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, dll.

Pengubahsuaiannya mudah. Kami hanya mencetak nama Ujian.

Log dibuat di konsol. Mudah bagi pengguna untuk memahami ujian mana yang lulus, gagal, dan lompat status.

Selepas pengubahsuaian, kodnya kelihatan seperti-

Listener_Demo pakej;import org.testng.ITestContext;import org.testng.ITestListener;import org.testng.ITestResult;ListenerTest kelas awam melaksanakan ITestListener{@Selamatkekosongan awam onFinish (Keputusan Konteks ITest){}@Selamatkekosongan awam diStart (Keputusan ITestContext){}@Selamatkekosongan awam onTestFailedButWithinSuccessPercentage (Keputusan ITestResult){}// Apabila kes Ujian gagal, kaedah ini dipanggil.@Selamatkekosongan awam onTestFailure (Keputusan ITestResult){System.out.println ("Nama kotak ujian gagal adalah: + Result.getName ());}// Apabila kes Uji dilangkau, kaedah ini dipanggil.@Selamatpembatalan awam onTestSkipped (Keputusan ITestResult){System.out.println ("Nama kotak ujian yang dilangkau adalah: + Result.getName ());}// Apabila kes Ujian dimulakan, kaedah ini dipanggil.@Selamatkekosongan awam onTestStart (Keputusan ITestResult){System.out.println (Result.getName () + "kes ujian dimulakan");}// Apabila kes Uji lulus, kaedah ini dipanggil.@Selamatkekosongan awam onTestSuccess (Keputusan ITestResult){System.out.println ("Nama kotak ujian yang dilalui adalah: + Result.getName ());}}

Langkah 2) Buat kelas lain "TestCases" untuk automasi proses log masuk. Selenium akan melaksanakan 'TestCases' ini untuk log masuk secara automatik.

Listener_Demo pakej;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Pendengar;Import org.testng.annotations.Test;Ujian Kes awam kelas {Pemacu WebDriver = FirefoxDriver baru ();// Uji untuk lulus untuk mengesahkan pendengar.@ Ujianlog masuk awam tidak sah (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("kata laluan")). sendKeys ("amUpenu");driver.findElement (By.name ("btnLogin")). klik ();}// Berjaya gagal dalam ujian ini untuk mengesahkan pendengar.@ Ujiantidak sah awam TestToFail (){System.out.println ("Kaedah ini untuk menguji gagal");Assert.assertTrue (palsu);}}

Langkah 3) Seterusnya, laksanakan pendengar ini di kelas projek biasa kami iaitu "TestCases". Terdapat dua cara yang berbeza untuk menyambung ke kelas dan antara muka.

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

@Listeners (Listener_Demo.ListenerTest.class) 

Kami menggunakannya dalam kelas "TestCases" seperti gambar di bawah.

Jadi akhirnya kelas "TestCases" kelihatan seperti menggunakan anotasi Pendengar:

Listener_Demo pakej;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Pendengar;import org.testng.annotations.Test;@Listeners (Listener_Demo.ListenerTest.class)Ujian Kes awam kelas {Pemacu WebDriver = FirefoxDriver baru ();// Uji untuk lulus untuk mengesahkan pendengar.@ Ujianlog masuk awam tidak sah (){driver.get ("http://demo.guru99.com/V4/");driver.findElement (By.name ("uid")). sendKeys ("mngr34926");driver.findElement (By.name ("kata laluan")). sendKeys ("amUpenu");driver.findElement (By.id ("")). klik ();}// Berjaya gagal dalam ujian ini sebagai mengesahkan pendengar.@ Ujiantidak sah awam TestToFail (){System.out.println ("Kaedah ini untuk menguji gagal");Assert.assertTrue (palsu);}}

Struktur projek kelihatan seperti:

Langkah 4): Jalankan kelas "TestCases". Kaedah dalam kelas "ListenerTest" dipanggil secara automatik mengikut tingkah laku kaedah yang diberi penjelasan sebagai @Test.

Langkah 5): Sahkan Output yang log dipaparkan di konsol.

Output dari 'TestCases' akan kelihatan seperti ini:

[TestNG] Berlari:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customuite.xmlKes Ujian Log Masuk dimulakanNama kotak ujian yang dilalui adalah: Log masukKes ujian TestToFail dimulakanKaedah ini untuk menguji gagalNama kotak ujian yang gagal adalah: TestToFailLULUS: Log masukGAGAL: TestToFailjava.lang.AssertionError: dijangka [benar] tetapi dijumpai [salah] 

Penggunaan Pendengar untuk pelbagai kelas.

Sekiranya projek mempunyai beberapa kelas menambahkan Pendengar untuk masing-masing dari mereka mungkin membebankan dan rawan kesalahan.

Dalam kes seperti itu, kita dapat membuat testng.xml dan menambahkan tag pendengar dalam XML.

Pendengar ini dilaksanakan di seluruh rangkaian ujian tanpa mengira bilangan kelas yang anda miliki. Semasa anda menjalankan fail XML ini, pendengar akan mengerjakan semua kelas yang disebutkan. Anda juga boleh menyatakan bilangan kelas pendengar.

Ringkasan:

Pendengar diminta untuk menghasilkan log atau menyesuaikan laporan TestNG di Selenium Webdriver.

  • Terdapat banyak jenis pendengar dan boleh digunakan mengikut keperluan.
  • Pendengar adalah antara muka yang digunakan dalam skrip pemacu web selenium
  • Menunjukkan penggunaan Pendengar di Selenium
  • Melaksanakan Pendengar untuk pelbagai kelas