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. ASOP编译说明

    具体说明https://source.android.com/source/ 源码下载https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ 1 搭建编译环境使 ...

  2. schtasks命令

    1.创建任务 在每天的22.44定时执行一次. schtasks /create /tn : 在特定时间运行一次. schtasks /create /tn : /sd // 2.运行一次任务 创建任 ...

  3. react native native module

    React Native Native Modules,官方地址:https://facebook.github.io/react-native/docs/native-modules-android ...

  4. Spring.NET学习笔记1——控制反转(基础篇)

    在学习Spring.NET这个控制反转(IoC)和面向切面(AOP)的容器框架之前,我们先来看一下什么是控制反转(IoC). 控制反转(Inversion of Control,英文缩写为IoC),也 ...

  5. Java实现蛇形矩阵

    public class Solution { //下x++ 左y-- 上x-- 右y++ public void prints(int n) { int[][] mp = new int[n][n] ...

  6. EasyUI学习总结(一)——EasyUI入门(转载)

    本文转载自:http://www.cnblogs.com/xdp-gacl/p/4075079.html 一.EasyUI下载 EasyUI官方下载地址:http://www.jeasyui.com/ ...

  7. 【BZOJ 1052】 1052: [HAOI2007]覆盖问题 (乱搞)

    1052: [HAOI2007]覆盖问题 Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄 膜把这些小树遮盖起来,经过一番长久的 ...

  8. Oracle关于锁的几种类型和参数

    设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性.Oracle数据库封锁方式有三种:共享封锁,独占封锁,共享更新封锁 封锁类型 Oracle RDBMS的封锁类型可分 ...

  9. pymysql与mysql各功能

    pymysql # 增删改操作 import pymysql client=pymysql.connect( host='127.0.0.1', port=3306, user='root', pas ...

  10. Problem E: 12306

    #include <stdio.h> struct student{ int n; int m;}; int main(void) { int T; int k,g,i,j; ],max; ...