TestNG中用到的annotation的快速预览及其属性。

@BeforeSuite:   被注释的方法将在所有测试运行前运行

@AfterSuite:  被注释的方法将在所有测试运行后运行

@BeforeTest:  被注释的方法将在测试运行前运行

@AfterTest:   被注释的方法将在测试运行后运行

@BeforeGroups:   被配置的方法将在列表中的gourp前运行。这个方法保证在第一个属于这些组的测试方法调用前立即执行。

@AfterGroups:  被配置的方法将在列表中的 gourp后运行。这个方法保证在最后一个属于这些组的测试方法调用后立即执行。

@BeforeClass:  被注释的方法将在当前类的第一个测试方法调用前运行。

@AfterClass:   被注释的方法将在当前类的所有测试方法调用后运行。

@BeforeMethod:  被注释的方法将在每一个测试方法调用前运行。

@AfterMethod:  被注释的方法将在每一个测试方法调用后运行。

属性:

alwaysRun

1.对于每个before方法(beforeSuite,beforeTest,beforeTestClass和beforeTestMethod,但是不包括 beforeGroups):  如果设置为true,被配置的方法将总是运行而不管它属于哪个组。

2.对于after方法(afterSuite,afterClass, ...):  如果设置为 true,被配置的方法甚至在一个或多个先调用的方法失败或被忽略时也将运行。

dependsOnGroups       这个方法依赖的组列表

dependsOnMethods     这个方法依赖的方法列表

enabled           这个类的方法是否激活

groups            这个类或方法所属的分组列表

inheritGroups   如果设置为true,这个方法被属于在类级别被@Testannotation 指定的组

DataProvider    标记一个方法用于为测试方法提供数据。

被注释的方法必须返回Object[][], 其中每个Object[]可以指派为这个测试方法的参数列表。

这个DataProvider接收数据@Test方法需要使用一个和当前注释相同名称的 dataProvider名称

name这个 DataProvider的名称

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

@Parameters   描述如何传递参数给

@Test方法

alwaysRun    如果设置为true,这个测试方法将总是运行,甚至当它依赖的方法失败时。

dataProvider    这个测试方法的data provider的名称

dataProviderClass   用于查找data provider的类。如果不指定,将在当前测试方法所在的类或者它的基类上查找 dataprovider。如果这个属性被指定, 则 data provider方法需要是指定类的 static方法。

value   用于填充这个方法的参数的变量列表

dependsOnGroups    当前方法依赖的组列表

dependsOnMethods    当前方法依赖的方法列表

escription    当前方法的描述

enabled    当前类的方法/方法是否被激活

expectedExceptions    测试方法期望抛出的异常列表。如果没有异常或者抛出的不是列表中的任何一个,当前方法都将标记为失败.

invocationCount    当前方法被调用的次数

successPercentage    当前方法期望的成功率

sequential  如果设置为true,当前测试类上的所有方法保证按照顺序运行。甚至测试们在parallel="true"的情况下.这个属性只能用于类级别,如果用于方法级别将被忽略。

timeOut    当前方法容许花费的最大时间,单位毫秒。

threadPoolSize    当前方法的线程池大小。方法将被多线程调用,次数由 invocationCount参数指定

注意:如果invocationCount没有指定则这个属性将被忽略

注:

上面是 TestNG中用到的annotation列表,从中我们可以看到 TestNG提供的一些特性

1.before 方法和after 方法   带来了足够丰富的测试生命周期控制

2.dependsOnGroups/dependsOnMethods 提供了依赖检查机制,并可以严格控制执行顺序

3.DataProvider 使得对同一个方法的测试覆盖变的非常轻松,非常适合进行边界测试,只要给出多种测试数据就可以针对一个测试方法进行覆盖

4.expectedExceptions 使得异常测试变的非常轻松

5.invocationCount/threadPoolSize 终于可以简单的直接进行多线程测试了,这个绝对是 junit的超级弱项,回想junit中那个万恶的

System.exist(0)...

6.timeOut 终于不用死等然后手工强行关闭测试,TestNG 想的太周到了

groups    当前类/方法所属的组列表

本文转载自http://blog.sina.com.cn/bestfeiyong

TestNG 七 annotation的更多相关文章

  1. Java自动化测试框架-11 - TestNG之annotation与并发测试篇 (详细教程)

    1.简介 TestNG中用到的annotation的快速预览及其属性. 2.TestNG基本注解(注释) 注解 描述 @BeforeSuite 注解的方法只运行一次,在当前suite所有测试执行之前执 ...

  2. testng 教程之使用参数的一些tricks配合使用reportng

    前两次的总结:testng annotation生命周期 http://www.cnblogs.com/tobecrazy/p/4579414.html testng.xml的使用和基本配置http: ...

  3. testng教程之testng.xml的配置和使用,以及参数传递

    昨天学习了一下testng基础教程,http://www.cnblogs.com/tobecrazy/p/4579414.html 昨天主要学习的是testng 的annotation基本用法和生命周 ...

  4. testNG小试牛刀

    testNG是一个测试框架,其灵感来自JUnit和NUnit的,但引入了一些新的功能,使其功能更强大,使用更方便. testNG是一个开源自动化测试框架:testNG表示下一代. testNG是类似于 ...

  5. TestNG的简单使用

    TestNG的简单使用 TestNG(Test Next Generation)是一个测试框架,其灵感来自JUnit和NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便. TestNG是 ...

  6. 关于testNG和JUnit的对比

    关于选择JUnit还是选testNG,这几篇文章,建议读一读: API参考文档: Junit API文档:http://junit.org/junit4/javadoc/latest/index.ht ...

  7. Java Junit测试框架

    Java    Junit测试框架 1.相关概念 Ø JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要 ...

  8. Hibernate学习笔记(1)Hibernate构造

    一 准备工作 首先,我们将创建一个简单的基于控制台(console-based)Hibernate应用. 我们所做的第一件事就是创建我们的开发文件夹.并把所有需要用到的Java件放进去.解压缩从Hib ...

  9. Appium的入门使用

    ps:有没有人和我一样觉得Appium官方文档写的很烂的, 这官方文档,还不如很多人写的博客详细,而且对于初学的入门者实在是不够友好, 官网:https://github.com/appium/jav ...

随机推荐

  1. HttpClient(转载)

    Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我 们再讨论),它不仅是客户端发送Http请求变得容易,而 ...

  2. 【POJ 2154】Color

    http://poj.org/problem?id=2154 还是先套上Burnside引理:\[\begin{aligned} ans & =\sum_{i=1}^n n^{(i,n)-1} ...

  3. 全网第二好懂的FFT(快速傅里叶变换)

    声明:本FFT是针对OI的.专业人员请出门左拐. Ⅰ前言 很久以前,我打算学习FFT. 然而,算法导论讲的很详细,却看不懂.网上博客更别说了,什么频率之类的都来了.我暗自下了决心:写一篇人看得懂的FF ...

  4. SPOJ Time Limit Exceeded(高维前缀和)

    [题目链接] http://www.spoj.com/problems/TLE/en/ [题目大意] 给出n个数字c,求非负整数序列a,满足a<2^m 并且有a[i]&a[i+1]=0, ...

  5. [AGC026B]rng_10s

    题意:一个商店,第一天早上有$A$罐苹果汁,一个人每天上午都会来买$B$罐,每天晚上如果剩余罐数$\leq C$那么会增加$D$罐,问能否无限买 收集一个套路...? 首先如果$B\gt A$或者$B ...

  6. 【动态规划】【滚动数组】Educational Codeforces Round 26 D. Round Subset

    给你n个数,让你任选K个,使得它们乘起来以后结尾的0最多. 将每个数的因子2和因子5的数量求出来,记作a[i]和b[i]. 答案就是max{ min{Σa[i],Σb[i]} }(a[i],b[i]是 ...

  7. 【最小割】BZOJ3438-小M的作物(Rank 2???!!!)(含新款Dinic模板)

    一开始被T掉了之后,才害怕地发现之前写的Dinic基本上都是错的??!!!正确的写在注释里了,注意一下(;3<)馬鹿やろ 一个丧心病狂的优化前后效率对比:

  8. The Responsive jQuery Content Slider

    jquery slider 效果 http://bxslider.com/ http://www.cnblogs.com/lhb25/archive/2012/08/13/jquery-image-e ...

  9. zabbix3.0的安装

    Lamp环境搭建:  #zabbix的版本,3.0之后的要求php版本5.4以上才支持 mysql需要对大小写敏感 编译安装PHP 下载 :wget http://mirrors.sohu.com/p ...

  10. String.format("%0"+length+"d", arr)中的%0和"d"分别代表什么

    public static void main(String[] args) { int a = 8; String s = String.format("%04d", a); S ...