TestNG Pendengar di Selenium: Contoh ITestListener & ITestResult


Ada dua pendengar utama.

  1. Pendengar WebDriver
  2. TestNG Pendengar

Pada tutorial kali ini kita akan membahas tentang Pengujian Pendengar.

Apa yang dimaksud dengan Pendengar TestNG?

Pendengar didefinisikan sebagai antarmuka yang mengubah default TestNGPerilaku. Seperti namanya, Listener “mendengarkan” peristiwa yang didefinisikan dalam skrip selenium dan berperilaku sesuai dengannya. Ini digunakan dalam selenium dengan mengimplementasikan Antarmuka Listener. Ini memungkinkan penyesuaian TestNG laporan atau log. Ada banyak jenis TestNG pendengar tersedia.

Pendengar di TestNG

Jenis Pendengar di TestNG

Ada banyak jenis pendengar yang memungkinkan Anda mengubah TestNGperilakunya.

Di bawah ini adalah beberapa di antaranya TestNG pendengar:

  1. IAnnotationTransformer,
  2. IAnnotationTransformer2,
  3. Dapat dikonfigurasi,
  4. IConfigurationListener,
  5. IExecutionListener,
  6. saya dapat di kaitkan ,
  7. IInvokedMethodListener ,
  8. IInvokedMethodListener2 ,
  9. Metode Interceptor,
  10. SayaReporter,
  11. Pendengar ISuite,
  12. Pendengar ITest.

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

Dalam tutorial ini, kita akan mengimplementasikan ITestListener.

ITestListener memiliki metode berikut

  • DiMulai- Metode OnStart dipanggil ketika Tes dimulai.
  • pada TesSukses- Metode onTestSuccess dipanggil jika Tes apa pun berhasil.
  • pada TestFailure- Metode onTestFailure dipanggil jika Tes apa pun gagal.
  • padaTesDilewatkan- Metode onTestSkipped dipanggil saat Tes apa pun dilewati.
  • onTestFailedButWithinSuccessPercentage- metode dipanggil setiap kali Tes gagal tetapi berada dalam persentase keberhasilan.
  • di Selesai- Metode onFinish dipanggil setelah semua Tes dijalankan.

Skenario Uji

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

  1. Peluncuran Firefox dan buka situsnya https://demo.guru99.com/V4/
  2. Skenario Uji

  3. Masuk ke aplikasi.
  4. Skenario Uji

Langkah-langkah membuat a TestNG Pendengar

Untuk skenario pengujian di atas, kami akan mengimplementasikan Listener.

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:

Langkah-Langkah Membuat a TestNG Pendengar

Cukup klik “Tambahkan metode yang belum diterapkan”. Beberapa metode yang tidak diterapkan (tanpa isi) ditambahkan ke kode. Periksa di bawah-

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

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

onTestFailure, onTestSkipped, onTestStart, onTestSuccess, etc.

Modifikasinya sederhana. Kami hanya mencetak nama Tesnya.

Log dibuat di konsol. Mudah bagi pengguna untuk memahami tes mana yang berstatus lulus, gagal, dan dilewati.

Setelah dimodifikasi, kodenya terlihat seperti-

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

}			

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

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

Langkah 3) Selanjutnya, implementasikan pendengar 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(Listener_Demo.ListenerTest.class)

Kami menggunakan ini di kelas “TestCases” seperti yang ditunjukkan di bawah ini.

Jadi akhirnya kelas "TestCases" terlihat setelah menggunakan anotasi Listener:

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

Struktur proyek terlihat seperti:

Langkah-Langkah Membuat a TestNG Pendengar

Langkah 4): Jalankan kelas “TestCases”. Metode di 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:

Langkah-Langkah Membuat a TestNG Pendengar

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

Penggunaan Pendengar untuk beberapa kelas.

Jika proyek memiliki beberapa kelas, menambahkan Listener ke masing-masing kelas dapat menjadi rumit dan rawan kesalahan.

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

Penggunaan Pendengar untuk Banyak Kelas

Listener ini diterapkan di seluruh rangkaian pengujian, berapa pun jumlah kelas yang Anda miliki. Saat Anda menjalankan file XML ini, pendengar akan bekerja pada semua kelas yang disebutkan. Anda juga dapat mendeklarasikan sejumlah kelas pendengar.

Ringkasan

Pendengar diharuskan membuat log atau menyesuaikan TestNG laporan masuk Selenium driver web.

  • 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 Pendengar untuk beberapa kelas