[Bài 3] Cách sử dụng Annotation After/Before trong TestNG

Định nghĩa: Annotation là tính năng giúp add thêm thông tin vào 1 object. Nó có thể được dùng cho class, method, variable, và parameters. TestNG cung cấp rất nhiều loại annotation cho các mục đích khác nhau, trong đó có các annotation phục vụ cho mục đích: xử lý trước và sau method Test. Vì sao cần xử lý trước và sau Test:

  • Cần tạo môi trường trước khi thực hiện test.
  • Cần xóa hết các trạng thái sau khi thực hiện test hoặc cần phải thực hiện các hành động không liên quan đến method Test nhưng cần thiết như screenshot, delete session hoặc close connection…

TestNG cung cấp 5 annotation ở dạng Before/After:

  • @BeforeSuite/@AfterSuite
  • @BeforeTest/@AfterTest
  • @BeforeGroups/@AfterGroups
  • @BeforeClass/@AfterClass
  • @BeforeMethod/@AfterMethod

I. Khai báo annotation trên 1 class

Thứ tự chạy của chúng sẽ được thể hiện qua ví dụ sau:

Và ta cần thêm 1 config cho file testng.xml

Và đây là kết quả:

Từ đây, ta có thể hiểu được thứ tự chạy chúng:

  • Khi bắt đầu thì mở từ Suite > Test > Group > Class > Method
  • Khi kết thúc thì đóng từ Method > Class > Group > Test > Suite

II. Khai báo annotation khi có extend

Ở phía trên, chúng ta đã xem về cách sử dụng annation trên 1 class, chúng ta sẽ băn khoăn là thế nhưng chúng ta viết theo dạng POM thì có cả BaseTest, không biết thứ tự run annotation sẽ như thế nào?

Hãy xem ví dụ dưới đây:

Ta có class BaseTest:

 

Class Test:

Và file testng.xml:

Đây là kết quả:

Thứ tự chạy khi có extend sẽ là:

  • Khi bắt đầu: Parent Before > Child Before
  • Khi kết thúc: Child After > Parent After

Trong một project, không nhất thiết phải sử dụng hết tất cả các annotation này, nhưng ta cần phải biết thứ tự để từ đó control code của mình chạy theo thứ tự mình mong muốn, ví dụ như chụp screentshot ở cuối mỗi test, khởi tạo connection để đọc file Excel…

[Bài 4] @Test trong TestNG và các attribute của annotation @Test

One thought on “[Bài 3] Cách sử dụng Annotation After/Before trong TestNG

  1. Pingback: [Bài 2] Cách run test bằng package, class, method trong file testng.xml | GiangTester Blog

Leave a Reply

Your email address will not be published. Required fields are marked *