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. 五十七 POP3收取邮件

    SMTP用于发送邮件,如果要收取邮件呢? 收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python ...

  2. CentOS7安装和配置vsftpd

    (1)vsftpd基本介绍 作用:实现文件共享 1)vsftpd两种模式 主动模式 所谓主动模式,指的是FTP服务器"主动"去连接客户端的数据端口来传输数据,其过程具体来说就是:客 ...

  3. OpenStack 认证服务 KeyStone 服务注册(六)

    一)检查keystone是否安装配置成功 1.1删除环境变量的配置 unset OS_AUTH_URL redhat 1.2 请求令牌认证 admin用户,请求认证令牌 openstack --os- ...

  4. RecyclerView 和 ListView 使用对比分析

    原文地址:http://blog.coderclock.com/2016/08/08/android/RecyclerView%20%E5%92%8C%20ListView%20%E4%BD%BF%E ...

  5. 洛谷——P1862 输油管道问题

    P1862 输油管道问题 题目背景 听说最近石油危机 所以想到了这题 题目描述 某石油公司计划建造一条由东向西的主要输油管道.该管道要穿过一个有n口油井的油田.从每口油井都要有一条输油管道沿最短路径( ...

  6. [USACO 2017 Jan Gold] Tutorial

    Link: 传送门 A: 按值大小插入后用树状数组统计两边个数 #include <bits/stdc++.h> using namespace std; #define X first ...

  7. python基础之生成器,三元表达式,列表生产式

    生成器 1.什么是生成器? 在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,该值称为生成器. 生成器的本质就是迭代器. 2.为什么要用生成器? 生成器是一种自定义迭代器 ...

  8. [HNOI/AHOI2017]影魔

    [HNOI/AHOI2017]影魔 题目大意: 有一排\(n(n\le2\times10^5)\)个数\(k_{1\sim n}\).对于点对\((i,j)\),若不存在\(k_s(i<s< ...

  9. FZU 2036 Log Calculator

    思路:数学题! 给定a,b,求s=log2(2a+2b);转化为s=b+log2(2a-b+1),(a>b). 测试可以知道,当x>=32时,在精度范围内log2(2x+1)=x.否则将a ...

  10. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) A. Orchestra 水题

    A. Orchestra 题目连接: http://www.codeforces.com/contest/635/problem/A Description Paul is at the orches ...