一、常见测试用例组织结构如下:

  • Test Suite由一个或多个Test组成。
  • Test 由一个或者多个测试Class组成。
  • 一个测试class由一个或者多个测试方法组成。

在testing.xml中的配置如下。


<suite>
    <test>
        <classes>
            <method>
            
            </method>
        </classes>
    </test>
</suite>


二、常用注解如下

  • @BeforeSuite:表示此注解的方法会在当前测试集合(Suite)中的任一测试用例开始之前执行。
  • @AfterSuite:表示此注解的方法会在当前测试集合(Suite)中的所有测试程序运行结束之后执行。
  • @BeforTest:表示此注解方法会在Test中任一测试用例开始运行前执行。
  • @AfterTest:表示此注解方法会在Test中所有测试用例运行结束后执行。
  • @BeforGroups:表示此注解的方法会在分组测试用例的任一测试用例开始前执行。
  • @AfterGroups:表示此注解的方法会在分组测试用例的所有测试用例运行结束后执行。
  • @BeforeClass:表示此注解的方法会在当前测试类的任一测试用例开始前执行。
  • @AfterClass:表示此注解的方法会在当前测试类的所有测试测试用例运行结束后执行。
  • @BeforeMethod:表示此注解的方法会在每个测试方法开始运行前执行。
  • @AfterMethod:表示此注解的方法会在每个测试方法运行结束后执行。
  • @Test:表示此注解的方法会被认为是一个测试方法,即一个测试用例。
public class TestNG {
	@Test
	public void testCase1(){
		System.out.println("测试用例1被执行!");
	}
	
	@Test
	public void testCase2(){
		System.out.println("测试用例2被执行!");
	}
	
	@BeforeMethod
	public void beforeMethod(){
		System.out.println("在每个测试方法开始运行前执行!");
	}
	
	@AfterMethod
	public void afterMethod(){
		System.out.println("在每个测试方法运行结束后执行!");
	}
	
	@BeforeClass
	public void beforeClass(){
		System.out.println("在每个测试类的第一个测试方法开始调用前执行!");
	}
	@AfterClass
	public void afterClass(){
		System.out.println("当前测试类的最后一个测试方法结束运行后执行!");
	}
	
	@BeforeTest
	public void beforeTest(){
		System.out.println("在测试类中的Test开始运行前执行!");
	}
	@AfterTest
	public void afterTest(){
		System.out.println("在测试类中的Test运行结束后执行!");
	}
	
	@BeforeSuite
	public void beforeSuite(){
		System.out.println("在当前测试集合Suite中的所有测试程序开始之前执行!");
	}
	@AfterSuite
	public void afterSuite(){
		System.out.println("在当前测试集合Suite中的所有测试程序运行结束后执行!");
	}
	

}
//testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5" name="Test">
    <classes>
      <!-- 可添加多个class形成测试集合 -->
      <class name="com.testng.test.AnnotationTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

//输出结果:
在当前测试集合Suite中的所有测试程序开始之前执行!
在测试类中的Test开始运行前执行!
在每个测试类的第一个测试方法开始调用前执行!
在每个测试方法开始运行前执行!
测试用例1被执行!
在每个测试方法运行结束后执行!
在每个测试方法开始运行前执行!
测试用例2被执行!
在每个测试方法运行结束后执行!
当前测试类的最后一个测试方法结束运行后执行!
在测试类中的Test运行结束后执行!
PASSED: testCase1
PASSED: testCase2

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================

在当前测试集合Suite中的所有测试程序运行结束后执行!

===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================