Có hai thính giả chính.
- Trình nghe WebDriver
- Người nghe TestNG
Trong hướng dẫn này, chúng ta sẽ thảo luận về Trình nghe Testng. Đây là những gì bạn sẽ học-
- Người nghe trong TestNG là gì?
- Các loại trình nghe trong TestNG
- Kịch bản thử nghiệm:
- Các bước tạo Trình nghe TestNG
- Sử dụng Listener cho nhiều lớp.
Người nghe trong TestNG là gì?
Listener được định nghĩa là giao diện sửa đổi hành vi của TestNG mặc định. Như tên cho thấy Người nghe "lắng nghe" sự kiện được xác định trong tập lệnh selen và hành xử theo đó. Nó được sử dụng trong selen bằng cách triển khai Giao diện Người nghe. Nó cho phép tùy chỉnh các báo cáo hoặc nhật ký TestNG. Có nhiều loại trình nghe TestNG có sẵn.
Các loại trình nghe trong TestNG
Có nhiều loại trình nghe cho phép bạn thay đổi hành vi của TestNG.
Dưới đây là một số người nghe TestNG:
- IAnnotationTransformer,
- IAnnotationTransformer2,
- IConfigurable,
- IConfigurationListener,
- IExecutionListener,
- IHookable,
- IInvokedMethodListener,
- IInvokedMethodListener2,
- IMethodInterceptor,
- IReporter,
- ISuiteListener,
- ITestListener.
Giao diện trên được gọi là Trình nghe TestNG. Các giao diện này được sử dụng trong selen để tạo nhật ký hoặc tùy chỉnh các báo cáo TestNG.
Trong hướng dẫn này, chúng tôi sẽ triển khai ITestListener.
ITestListener có các phương pháp sau
- OnStart- Phương thức OnStart được gọi khi bất kỳ Thử nghiệm nào bắt đầu.
- onTestSuccess- onTestSuccess phương pháp được gọi dựa trên sự thành công của bất kỳ Thử nghiệm nào.
- onTestFailure- onTestFailure phương thức được gọi khi thất bại của bất kỳ Kiểm tra nào.
- onTestSkipped- onTestSkipped method được gọi khi bỏ qua bất kỳ Test nào.
- Phương thức onTestFailedButWithinSuccessPercentage- được gọi mỗi khi Kiểm tra không thành công nhưng nằm trong phần trăm thành công.
- onFinish- phương pháp onFinish được gọi sau khi tất cả thử nghiệm được thực hiện.
Kịch bản thử nghiệm:
Trong kịch bản thử nghiệm này, chúng tôi sẽ tự động hóa quy trình Đăng nhập và triển khai 'ItestListener'.
- Khởi chạy Firefox và mở trang web "http://demo.guru99.com/V4/"
- Đăng nhập vào ứng dụng.
Các bước tạo Trình nghe TestNG
Đối với kịch bản thử nghiệm ở trên, chúng tôi sẽ triển khai Listener.
Bước 1) Tạo lớp "ListenerTest" triển khai 'ITestListener'. Di chuyển chuột qua văn bản đường viền đỏ và Eclipse sẽ gợi ý cho bạn 2 bản sửa lỗi nhanh như được hiển thị trong màn hình bên dưới:
Chỉ cần nhấp vào "Thêm phương pháp chưa hoàn thành". Nhiều phương thức chưa hoàn thành (không có nội dung) được thêm vào mã. Kiểm tra bên dưới-
gói Listener_Demo;nhập org.testng.ITestContext;nhập org.testng.ITestListener;nhập org.testng.ITestResult;public class ListenerTest triển khai ITestListener{@Ghi đèpublic void onFinish (ITestContext arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}@Ghi đèpublic void onStart (ITestContext arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}@Ghi đèpublic void onTestFailedButWithinSuccessPercentage (ITestResult arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}@Ghi đèpublic void onTestFailure (ITestResult arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}@Ghi đèpublic void onTestSkipped (ITestResult arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}@Ghi đèpublic void onTestStart (ITestResult arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}@Ghi đèpublic void onTestSuccess (ITestResult arg0) {// VIỆC CẦN LÀM Sơ khai phương thức được tạo tự động}}
Hãy sửa đổi lớp 'ListenerTest'. Đặc biệt, chúng tôi sẽ sửa đổi các phương pháp sau:
onTestFailure, onTestSkipped, onTestStart, onTestSuccess, v.v.
Việc sửa đổi rất đơn giản. Chúng tôi chỉ in tên của Bài kiểm tra.
Nhật ký được tạo trong bảng điều khiển. Người dùng có thể dễ dàng hiểu bài kiểm tra nào là trạng thái đạt, không đạt và bỏ qua.
Sau khi sửa đổi, mã trông giống như-
gói Listener_Demo;nhập org.testng.ITestContext;nhập org.testng.ITestListener;nhập org.testng.ITestResult;public class ListenerTest triển khai ITestListener{@Ghi đèpublic void onFinish (Kết quả ITestContext){}@Ghi đèpublic void onStart (ITestContext Result){}@Ghi đèpublic void onTestFailedButWithinSuccessPercentage (ITestResult Result){}// Khi Test case không thành công, phương thức này được gọi.@Ghi đèpublic void onTestFailure (Kết quả ITestResult){System.out.println ("Tên của testcase không thành công là: + Result.getName ());}// Khi Test case bị bỏ qua, phương thức này được gọi.@Ghi đèpublic void onTestSkipped (ITestResult Result){System.out.println ("Tên của testcase Đã bỏ qua là: + Result.getName ());}// Khi Test case bắt đầu, phương thức này được gọi.@Ghi đèpublic void onTestStart (ITestResult Result){System.out.println (Result.getName () + "trường hợp thử nghiệm đã bắt đầu");}// Khi Test case được thông qua, phương thức này được gọi.@Ghi đèpublic void onTestSuccess (ITestResult Result){System.out.println ("Tên của testcase được truyền là: + Result.getName ());}}
Bước 2) Tạo một lớp khác "TestCases" để tự động hóa quy trình đăng nhập. Selenium sẽ thực thi 'TestCases' này để đăng nhập tự động.
gói Listener_Demo;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập khẩu org.testng.Assert;nhập org.testng.annotations.Listists;Nhập org.testng.annotations.Test;TestCases lớp công khai {Trình điều khiển WebDriver = new FirefoxDriver ();// Kiểm tra để vượt qua như để xác minh người nghe.@Kiểm trapublic void Đăng nhập (){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 ();}// Buộc thử nghiệm này không thành công khi xác minh trình nghe.@Kiểm trapublic void TestToFail (){System.out.println ("Phương pháp này để kiểm tra không thành công");Assert.assertTrue (sai);}}
Bước 3) Tiếp theo, thực hiện trình lắng nghe này trong lớp dự án thông thường của chúng tôi, tức là "TestCases". Có hai cách khác nhau để kết nối với lớp và giao diện.
Cách đầu tiên là sử dụng chú thích Người nghe (@Listists) như hình dưới đây:
@Listists (Listener_Demo.ListenerTest.class)
Chúng tôi sử dụng điều này trong lớp "TestCases" như được hiển thị bên dưới.
Vì vậy, cuối cùng lớp "TestCases" trông như thế nào sau khi sử dụng chú thích Listener:
gói Listener_Demo;nhập org.openqa.selenium.By;nhập org.openqa.selenium.WebDriver;nhập org.openqa.selenium.firefox.FirefoxDriver;nhập khẩu org.testng.Assert;nhập org.testng.annotations.Listists;nhập org.testng.annotations.Test;@Listists (Listener_Demo.ListenerTest.class)TestCases lớp công khai {Trình điều khiển WebDriver = new FirefoxDriver ();// Kiểm tra để vượt qua như để xác minh người nghe.@Kiểm trapublic void Đăng nhập (){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 ("")). click ();}// Buộc thử nghiệm này không thành công với tư cách là trình nghe xác minh.@Kiểm trapublic void TestToFail (){System.out.println ("Phương pháp này để kiểm tra không thành công");Assert.assertTrue (sai);}}
Cấu trúc dự án trông giống như:
Bước 4): Thực thi lớp "TestCases". Các phương thức trong lớp "ListenerTest" được gọi tự động theo hành vi của các phương thức được chú thích là @Test.
Bước 5): Xác minh Đầu ra mà các bản ghi hiển thị trên bảng điều khiển.
Đầu ra của 'TestCases' sẽ giống như sau:
[TestNG] Đang chạy:C: \ Users \ gauravn \ AppData \ Local \ Temp \ testng-eclipse - 1058076918 \ testng-customsuite.xmlĐã bắt đầu trường hợp kiểm tra đăng nhậpTên của testcase được thông qua là: Đăng nhậpĐã bắt đầu trường hợp thử nghiệm TestToFailPhương pháp này để kiểm tra thất bạiTên của testcase không thành công là: TestToFailĐÃ PASSED: Đăng nhậpTHẤT BẠI: TestToFailjava.lang.AssertionError: mong đợi [true] nhưng tìm thấy [false]
Sử dụng Listener cho nhiều lớp.
Nếu dự án có nhiều lớp, việc thêm Trình xử lý vào mỗi lớp có thể phức tạp và dễ xảy ra lỗi.
Trong những trường hợp như vậy, chúng ta có thể tạo testng.xml và thêm thẻ người nghe trong XML.
Trình lắng nghe này được thực hiện trong toàn bộ bộ thử nghiệm bất kể số lượng lớp bạn có. Khi bạn chạy tệp XML này, trình nghe sẽ hoạt động trên tất cả các lớp được đề cập. Bạn cũng có thể khai báo bất kỳ số lượng lớp người nghe nào.
Tóm lược:
Người nghe được yêu cầu tạo nhật ký hoặc tùy chỉnh báo cáo TestNG trong Selenium Webdriver.
- Có nhiều loại trình nghe và có thể được sử dụng theo yêu cầu.
- Trình nghe là giao diện được sử dụng trong tập lệnh trình điều khiển web selen
- Đã chứng minh việc sử dụng Listener trong Selenium
- Đã triển khai Trình nghe cho nhiều lớp