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. php导出excel时间错误(同一个时间戳,用date得到不同的时间)

    通过在date之前设置时区解决了 date_default_timezone_set("Asia/Shanghai"); $schedule_time = date("Y ...

  2. win_tc使用感受

    上大学的时候一直在使用win_tc就因为使用方便,今天准备用这个工具编辑一个函数,就特意下载了一个. 没想到直接出来一个bug. sizeof(char*)结果竟然是2. 果断接卸,误人子弟啊.

  3. Sqli-labs less 12

    Less-12 本关和less11是类似的,只是在id 的参数的处理上有一定的不同 当输入username:admin" Password: (随便) 报错后的结果为: You have a ...

  4. python datetime处理时间(转)

    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块,它提供 的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接 ...

  5. BZOJ 4756 [Usaco2017 Jan]Promotion Counting(线段树合并)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4756 [题目大意] 给出一棵树,对于每个节点,求其子树中比父节点大的点个数 [题解] ...

  6. XMPP聊天之Openfire 的安装和配置---Mac OS

    一.下载并安装openfire 1.下载最新的openfire安装文件 官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfir ...

  7. 添加HP消息队列

    Date: 20140210 Auth: Jin 两台服务器 120 HTTPSQS 236 HTTPPROXY 1.add host $ jump 120 #vim /etc/hosts 192.1 ...

  8. 【js UUID】JS生成UUID 使用

    * 生成UUID * @returns */ function UUID() { var s = []; var hexDigits = "0123456789abcdef"; f ...

  9. SDK里报错[NSConcreteMutableData wbsdk_base64EncodedString]

    百度一大堆都说在这个里加个-ObjC,然后加了还是有问题 最近谷歌了下才要加入这个才正常了,国内的开发者只是一知半解的………… 如果错误还没有解决, 下面这个可以帮到你:

  10. [Android Pro] ListView,GridView之LayoutAnimation特殊动画的实现

    转载自:http://gundumw100.iteye.com/blog/1874545 LayoutAnimation干嘛用的?不知道的话网上搜一下. Android的Animation之Layou ...