Đối với các lập trình viên Java, liên tưởng đầu tiên khi đề cập tới cụm từ “Testing Framework” đều nghĩ ngay đến “JUnit”. Tuy nhiên, nhắc tới “Testing Framework” không chỉ có Junit mà còn có “TestNG”. Vậy “TestNG” là gì? Hãy cùng TesterProVN tìm hiểu về TestNG qua bài viết dưới đây.
>>> Xem thêm: https://testerprovn.com/game-tester-la-gi/
TestNG là gì?
TestNG là một testing framework – nó cải tiến những hạn chế của một testing framework phổ biến khác gọi là JUnit. TestNG (Next Generation) có nghĩa là thế hệ tiếp theo.
TestNG loại bỏ hầu hết các hạn chế của khuôn khổ cũ hơn và cho phép nhà phát triển khả năng viết các bài kiểm tra linh hoạt và mạnh mẽ hơn với sự trợ giúp của các chú thích đơn giản, nhóm, sắp xếp và parametrizing.
Hầu hết người dùng Selenium sử dụng nó nhiều hơn Junit vì lợi ích của nó. Có rất nhiều tính năng của TestNG, nhưng chúng ta sẽ chỉ tập trung vào những thứ quan trọng nhất mà chúng ta có thể sử dụng trong Selenium.
Các tính năng của TestNG
-
Hỗ trợ cho các chú thích.
- Hỗ trợ tham số.
- Phương pháp thực hiện trước mà không yêu cầu phải tạo các bộ kiểm tra
- Hỗ trợ kiểm tra dữ liệu bằng cách sử dụng Dataproviders.
- Cho phép người dùng thiết lập các ưu tiên thực hiện cho các phương pháp thử.
- Dễ dàng hỗ trợ tích hợp với các công cụ và plug-in khác nhau như công cụ xây dựng (Ant, Maven vv), Môi trường phát triển tích hợp (Eclipse).
- Tạo báo cáo hiệu quả bằng ReportNG.
Viết một test case sử dụng TestNG
Các bước viết test case sử dụng TestNG
-
Bước 1 – Viết logic kinh doanh của bài kiểm tra
- Bước 2 – Chèn chú thích TestNG trong mã
- Bước 3 – Thêm thông tin về bài kiểm tra của bạn (ví dụ tên lớp, tên phương pháp, tên nhóm …) trong file testng.xml
- Bước 4 – Chạy TestNG
Ưu điểm của TestNG
-
Nó cho phép tạo ra các bản báo cáo HTML của tiến trình thực thi
- Các chú thích giúp việc kiểm thử dễ dàng hơn, Chú thích dễ hiểu
- Các mẫu thực thi có thể được thiết lập
- Thực hiện kiểm thử song song
- Có thể đặt các phụ thuộc cho trường hợp thử nghiệm
- Annotation dễ hiểu hơn
- Test case có thể được nhóm lại 1 cách dễ dàng
- Tạo ra các bản ghi
- Có thể tham số hóa dữ liệu
- Chú thích được đặt trước bởi một biểu tượng “@” trong cả hai TestNG và JUnit.
Các tính năng nổi bật TestNG
-
Mô tả các thiết lập khác nhau khi kiểm thử bằng file XML.
- Cung cấp các chỉ dẫn Annotation-based để nhận diện phương thức test
- Xác lập cụ thể thời điểm cho các xử lý trước và sau
- Phân nhóm kiểm thử, tạo mối quan hệ ràng buộc lẫn nhau giữa các module.
- TestNG được viết bằng Java và nó có thể sử dụng với Java và ngôn ngữ “họ hàng” với Java như Groovy.
- TestNG sẽ config suites và tests thông qua file XML, thông thường lấy tên là testng.xml nhưng mà tên nào cũng được.
- TestNG sẽ cho phép bạn config để nhặt ra những packages / Classes / Methods mà bạn muốn hoặc không muốn run
- TestNG còn có cả public API dành cho ai muốn add thêm functions hoặc extensions.
Tổng hợp các Annotation trong TestNG
@BeforeSuite: Các phương thức thực thi trước tất cả trước các test trong bộ test đã thực thi.
@AfterSuite: Phương thức thực thi sau tất cả các test trong bộ test đã thực thi.
@BeforeTest:thực thi trước bất kì phương thức nào thuộc các lớp trong thẻ được thực thi.
@AfterTest: thực thi trước tất cả các phương thức thuộc các lớp trong thẻ đã được thực thi.
@BeforeGroups:Danh sách các nhóm phương thức cấu hình sẽ chạy trước. Phương thức này được bảo đảm để chạy ngay trước khi phương thức đầu tiên thuộc trong bất kì các nhóm này được gọi.
@AfterGroups: Phương thức này được bảo đảm để chạy ngay sau khi phương thức đầu tiên thuộc trong bất kì các nhóm này được gọi.
@BeforeClass: thực thi trước khi phương thức thứ nhất trong lớp hiện tại được gọi.
@AfterClass: thực thi sau khi phương thức thứ nhất trong lớp hiện tại được gọi.
@BeforeMethod: thực thi trước mỗi phương thức trong từng test case.
@AfterMethod: thực thi sau mỗi phương thức trong từng test case.
@Test: Những method bên dưới annotation này là một phần của 1 test case.
Các cách để xuất báo cáo trong TESTNG là gì?
TestNg cung cấp hai cách giúp chúng ta có thể xuất báo cáo, đó là:
Sử dụng Reporters: đối với một class reporting, nó cũng sẽ thực thi cái interface là org.testng/Reporter. Khi mà tất cả các test suite chạy xong, những class này sẽ được gọi đến, lúc này tất cả các thông tin của các đối tượng trong toàn bộ quá trình thực hiện test sẽ được gửi đến class này.
Sử dụng Listeners: một class listener sẽ thực thi một interface là org.testng./TestListener. Trong khi run test, TestNg sẽ gửi thông tin tới các class đó mỗi khi các test case đó ở các trạng thái như: est begins, finishes, skips, passes hoặc fails.