TestNG的一些常用注解

目录

1. 测试用例相关的注解

1.1 @BeforeSuite

1.2 @AfterSuite

1.3 @BeforeClass

1.4 @AfterClass

1.5 @BeforeTest

1.6 @AfterTest

1.7 @BeforeGroups

1.8 @AfterGroups

1.9 @BeforeMethod

1.10 @AfterMethod

1.11 @Test

1.12 @Parameters

1.13 @DataProvider

1.14 @Factory

1.15 @Listeners

2. 打包测试Suite相关的标签(配置文件中)

2.1 xml配置文件

2.2 配置文件中的常用标签

2.3 示例

3. TestNG的依赖

3.1 方法的依赖:dependsOnMethods

3.2 组的依赖:dependsOnGroups

4. 用例并发测试

4.1 tests级别

4.2 classes级别

4.3 methods级别

4.4 instance级别

【写在前面】

前文链接:JUnit4的一些常用注解

1. 测试用例相关的注解

1.1 @BeforeSuite

在该套件的所有测试都运行在注释的方法之前,仅运行一次(套件测试是一起运行的多个测试类)

1.2 @AfterSuite

在该套件的所有测试都运行在注释方法之后,仅运行一次

1.3 @BeforeClass

在调用当前类的第一个测试方法之前运行,仅运行一次

1.4 @AfterClass

在调用当前类的第一个测试方法之前=后运行,仅运行一次

1.5 @BeforeTest

注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行

1.6 @AfterTest

注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行

1.7 @BeforeGroups

配置方法将在之前运行组列表。此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。

1.8 @AfterGroups

配置方法将在之前运行组列表。此方法保证在调用属于这些组中的最后一个测试方法之后不久运行。

1.9 @BeforeMethod

注释方法将在每个测试方法之前运行

1.10 @AfterMethod

注释方法将在每个测试方法之后运行

1.11 @Test

将类或方法标记为测试的一部分

1.12 @Parameters

描述如何将参数传递给@Test方法

1.13 @DataProvider

标记一种方法来提供测试方法的数据。注释方法必须返回一个Object[][],其中每个Object[]可以被分配给测试方法的参数列表。要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称

1.14 @Factory

将一个方法标记为工厂,返回TestNG将被用作测试类的对象。该方法必须返回Object[]

1.15 @Listeners

定义测试类上的侦听器

 

2. 打包测试Suite相关的标签(配置文件中)

2.1 xml配置文件

TestNG通过配置文件来完成Suite功能。

即:如果要一次运行多个测试类,在项目根目录testng下,编辑xml文件,xml文件名自定义。

在配置好的xml文件中,右键选择TestNG Suite,完成多用例的执行。 

 

2.2 配置文件中的常用标签

(1)<suite> 套件

根标签,通常由几个<test组成>。属性:

name:套件的名称,必须属性

verbose:运行的级别或详细程度

parallel: 是否运行多线程来运行这个套件

thread-count:如果启用多线程,用于指定开户的线程数

annotations:在测试中使用的注释类型

time-out:在本测试中的所有测试方法上使用的默认超时时间

(2)<test> 测试用例

name为必须属性。选择测试脚本可以从包,类,方法三个层级进行。

(3)<packages> 用例中包含的包

包中所有的方法都会执行,子标签为<package name="packageName">

(4)<package> 测试包

name为必须属性

(5)<classes> 用例中包含的类

子标签为<classname="className">

(6)<class> 测试类

其中属性name为必须属性

(7)<methods>

指定测试类中包含或排除的方法,子类为 <include> <exclude>

<include> 指定需要测试的方法,name为必须属性

<exclude> 指定不需要测试的方法,name为必须属性

(8)<groups>

指定测试用例中要运行或排除运行的分组。

字标签为 <run>, <run>下包含<include>, <exclude>标签。

他们的name指定运行,不运行的分组。

2.3 示例

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 
<suite name="Suite">
  <test name="Test">
    <classes>
      <class name="com.my.testng.demo.Case1"/>
      <class name="com.my.testng.demo.Case2"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->
 

3. TestNG的依赖

如果希望不论前置方法是否成功运行,有依赖的后置方法都会得到运行。

那么需要在TestNG方法注解上,加一个alwaysRun=true属性。 

3.1 方法的依赖:dependsOnMethods

在被依赖的方法运行完成之后运行当前方法,如果依赖方法测试不通过,那么当前方法也不会继续运行了,依赖的方法可以有多个。

3.2 组的依赖:dependsOnGroups

在被依赖的组运行完成之后运行当前组,如果依赖组中的方法没有测试能过,那么当前的方法也不会继续运行了,依赖组可以有多个。

4. 用例并发测试

4.1 tests级别

不同test tag下的用例可以在不同的线程执行,相同的test tag下的用例只能在同一个线程中执行。        <suite name="Testing Parallel Test" parallel="tests" thread-count="5">

4.2 classes级别

不同class tag下的用例可以在不同的线程执行,相同的class tag下的用例只能在同一个线程中执行。        <suite name="Testing Parallel Test" parallel="classes" thread-count="5">

4.3 methods级别

所有用例都可以在不同的线程去执行

<suite name="Testing Parallel Test" parallel="methods" thread-count="5">

4.4 instance级别

<suite name="My suite" parallel="instances" thread-count="5">

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值