TestNG常用注解解释

注解含义表

注解名称含义
BeforeSuite该方法会运行在该测试集所有其他测试前面
AfterSuite该方法会运行在测试集里所有其他测试后面
BeforeTest该方法会运行在本类内部test标注的方法前面
AfterTest该方法会运行在本类内部test标注的方法后面
BeforeGroups该方法会运行在测试组之前。这个方法会在这个组里的第一个方法被调用之前执行
AfterGroups该方法会运行在测试组之后。这个方法会在这个组里的最后一个方法被调用之后执行
BeforeClass该方法会当前类的第一个测试之前执行
AfterClass该方法会在当前类的所有测试执行完之后执行
BeforeMethod该方法在每一个测试方法执行之前都会调用
AfterMethod该方法在每一个测试方法执行之后都会调用

注解方法的执行顺序

注解方法的执行顺序

关于Suite,Test,Class,Method的理解

Suite是在TestNG的xml中定义的,可以包含好多个Test,Test也是在TestNG的xml中定义的,可以包含好多个class。class是我们的自动化Java类,可以包含多个Method。

下面是一个包含Suite,Test,Class,Method的例子

测试程序文件
package first;
import org.testng.annotations.*;

class TestOrder {
    @BeforeSuite
    public void bs(){
        System.out.println("----before suite----");
    }
    @BeforeTest
    public void bt(){
        System.out.println("----before test----");
    }
    @BeforeClass
    public void bc(){
        System.out.println("----before class----");
    }
    @BeforeMethod
    public void bm(){
        System.out.println("----before method----");
    }
    @Test
    public void test1(){
        System.out.println("----in test1----");
    }
    @Test
    public void test2(){
        System.out.println("----in test2----");
    }
    @AfterMethod
    public void am(){
        System.out.println("----after method----");
    }
    @AfterClass
    public void ac(){
        System.out.println("----after class----");
    }
    @AfterTest
    public void at(){
        System.out.println("----after test----");
    }
    @AfterSuite
    public void as(){
        System.out.println("----after suite----");
    }
}
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
    <test name="Test1">
        <classes>
            <class name="first.TestOrder" />
        </classes>
    </test>
    <test name="Test2">
        <classes>
            <class name="first.TestOrder" />
        </classes>
    </test>
</suite>

运行结果如下:

[TestNG] Running:
  D:\workspace\FirstPro\testng.xml

----before suite----
----before test----
----before class----
----before method----
----in test1----
----after method----
----before method----
----in test2----
----after method----
----after class----
----after test----
----before test----
----before class----
----before method----
----in test1----
----after method----
----before method----
----in test2----
----after method----
----after class----
----after test----
----after suite----

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

从上面的执行结果就可以看出来测试程序的逻辑结构是这样的:
1.测试程序最外层是Suite,在执行Suite之前执行BeforeSuite,执行之后执行AfterSuite
2.每个Suite有多个Test组成,在每个Test执行之前执行BeforeTest,执行之后执行AfterTest
3.每个Test由多个Class组成,在每个Class执行前执行BeforeClass,执行之后执行AfterClass
4.每个Class由多个Method组成,在每个Method执行前执行BeforeMethod,执行之后执行AfterMethod

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值