上一篇文章讲述了,TestNG安装,以及简单的跑了一个小的脚本。这一章讲讲TestNG的注解,层级等。

  TestHG常见的用例组织结构为,Tset Suite由多个Test组成。Test由多个Class组成,而一个Class由多个方法构成。我们可以配置testng.xml的层级结构如下:

<suite>

          <test>

                <classses>

                    <method>

                    </method>

               </classes>

        </test>

</suite>

运行不同层级,可通过不同注解,实现不同的用例执行工作。TestNG常见注解

  1. @BeforeSuite:此注解方法会在当前测试集合中任何一测试用例开始运行前执行。
  2. @AfterSuite:此注解方法会在当前测试集合中所有测试用例运行结束后执行。
  3. @BeforeTest @AfterTest @BeforeClass @AfterClass @BeforeMethod @AfterMethod,解释都和上面一致。

    4. @Test,此注解可以理解为一个测试用例。为了更客观的表示上述注解,我们还是写一段代码看看吧。新建一个java类,名字随便起。就叫Testzhu。代码如下:

package cn.autotest;
 
import org.junit.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
 
public class Testzhu {
   @Test
   //写一个方法叫当中测试用例
   public void testcase1(){
    System.out.print("执行测试用例1哟!\n");
   }
   
   @AfterMethod
   // 方法后执行
   public void aftermethod(){
    System.out.print("测试方法结束后运行!\n");
    
   }
   //第二条测试用例
   @Test
   public void testcase2(){
    System.out.print("执行测试用例2哟!\n");
   }
   @AfterClass
   
   public void afterclass(){
    System.out.print("当前测试类最后一个测试方法结束后执行!\n");
    
   }
   
   @BeforeSuite
   public void beforsuite(){
    System.out.print("当前测试集合中所有测试程序开始运行前执行!\n");
   }
   
   @BeforeTest
   public void befortest(){
    System.out.print("当前测试类中的test开始前运行!\n");
   }
   @AfterSuite
   public void aftersuite(){
    System.out.print("当前测试集合中所有测试程序运行结束后执行!\n" );
   }
   @BeforeMethod
   public void beformethod(){
    System.out.print("测试方法开始前运行!\n");
   }
   
   @BeforeClass
   public void beforclass(){
    System.out.print("当前测试类第一个测试方法开始前执行!\n");
    
   }
}
;

执行结果:

当前测试集合中所有测试程序开始运行前执行!

当前测试类中的test开始前运行!

当前测试类第一个测试方法开始前执行!

测试方法开始前运行!

执行测试用例1哟!

测试方法结束后运行!

测试方法开始前运行!

执行测试用例2哟!

测试方法结束后运行!

PASSED: testcase1

PASSED: testcase2

 

===============================================

    Default test

    Tests run: 2, Failures: 0, Skips: 0

===============================================

 

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

 

===============================================

Default suite

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

===============================================