TestNG - Quy trình thực thi

Chương này giải thích quy trình thực thi của các phương thức trong TestNG. Nó giải thích thứ tự của các phương thức được gọi. Dưới đây là quy trình thực thi của các phương pháp API thử nghiệm TestNG với một ví dụ.

Tạo tên tệp lớp java TestngAnnotation.java trong C:\>TestNG_WORKSPACE để kiểm tra các chú thích.

import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;

public class TestngAnnotation {
   // test case 1
   @Test
   public void testCase1() {
      System.out.println("in test case 1");
   }

   // test case 2
   @Test
   public void testCase2() {
      System.out.println("in test case 2");
   }

   @BeforeMethod
   public void beforeMethod() {
      System.out.println("in beforeMethod");
   }

   @AfterMethod
   public void afterMethod() {
      System.out.println("in afterMethod");
   }

   @BeforeClass
   public void beforeClass() {
      System.out.println("in beforeClass");
   }

   @AfterClass
   public void afterClass() {
      System.out.println("in afterClass");
   }

   @BeforeTest
   public void beforeTest() {
      System.out.println("in beforeTest");
   }

   @AfterTest
   public void afterTest() {
      System.out.println("in afterTest");
   }

   @BeforeSuite
   public void beforeSuite() {
      System.out.println("in beforeSuite");
   }

   @AfterSuite
   public void afterSuite() {
      System.out.println("in afterSuite");
   }

}

Tiếp theo, hãy tạo tệp testng.xml trong C:\>TestNG_WORKSPACE để thực thi các chú thích.

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">
   <test name = "test1">
      <classes>
         <class name = "TestngAnnotation"/>
      </classes>
   </test>
</suite>

Biên dịch lớp Test case bằng javac.

C:\TestNG_WORKSPACE>javac TestngAnnotation.java

Bây giờ, hãy chạy testng.xml, sẽ chạy trường hợp thử nghiệm được xác định trong lớp Trường hợp thử nghiệm được cung cấp.

C:\TestNG_WORKSPACE>java org.testng.TestNG testng.xml

Xác minh kết quả đầu ra.

in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite

===============================================
Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

Dựa trên kết quả trên, quy trình thực hiện như sau:

  • Trước hết, phương thức beforeSuite () chỉ được thực thi một lần.

  • Cuối cùng, phương thức afterSuite () chỉ thực thi một lần.

  • Ngay cả các phương thức beforeTest (), beforeClass (), afterClass () và afterTest () chỉ được thực thi một lần.

  • Phương thức beforeMethod () thực thi cho mỗi trường hợp thử nghiệm nhưng trước khi thực thi trường hợp thử nghiệm.

  • Phương thức afterMethod () thực thi cho mỗi trường hợp thử nghiệm nhưng sau khi thực thi trường hợp thử nghiệm.

  • Ở giữa beforeMethod () và afterMethod (), mỗi trường hợp thử nghiệm sẽ thực thi.