TestNG的组测试和组中组测试
在编写测试的过程中,我们经常遇到只想执行个别或者某一部分/某一类型的测试用例,这时我们可以使用TestNG的分组测试方法
分组测试在配置时,TestNG执行的原则是:只保留最小集合进行执行
看代码:
- /**
- *
- * <p>
- * Title: TestngGroups
- * </p>
- *
- * <p>
- * 对应配置文件testng-groups.xml
- * Description:使用groups进行分组测试,include和exclude的原则是保留最小集合,
- * </p>
- *
- * <p>
- * Company:
- * </p>
- *
- * @author : Dragon
- *
- * @date : 2014年10月13日
- */
- public class TestngGroups {
- @Test(groups = { "functest", "checkintest" })
- public void testMethod1() {
- System.err.println("groups = { functest, checkintest }");
- }
- @Test(groups = { "functest", "checkintest" })
- public void testMethod2() {
- System.err.println("groups = { functest, checkintest }");
- }
- @Test(groups = { "functest" })
- public void testMethod3() {
- System.err.println("groups = { functest }");
- }
- @Test(groups = { "checkintest" })
- public void testMethod4() {
- System.err.println("groups = { checkintest }");
- }
- }
配置文件:testng-groups.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
- <suite name="framework_testng">
- <test verbose="2" name="TestGroups">
- <groups>
- <run>
- <include name="functest" />
- <exclude name="checkintest" />
- </run>
- </groups>
- <classes>
- <class name="com.dragon.testng.annotation.TestngGroups" />
- </classes>
- </test>
- </suite>
执行结果:
- groups = { functest }
- PASSED: testMethod3
- ===============================================
- TestGroups
- Tests run: 1, Failures: 0, Skips: 0
- ===============================================
- ===============================================
- framework_testng
- Total tests run: 1, Failures: 0, Skips: 0
- ===============================================
当我们的测试用例累积了很多以后,我们可能不需要测试之前的分组,只要测试刚刚写好的分组,这时候testng提供了一种新的配置方式,来实现这一功能,让测试人员只修改配置文件就完成测试
注意:多个group测试时,xml文件dom顺序必须是'<groups>'标签必须在'<test>'标签内, 否则会 有空指针异常
- /**
- *
- * <p>
- * Title: TestngGroupsOfGroups
- * </p>
- *
- * <p>
- * 参考配置文件:testng-groupsOfGroups.xml
- * Description:使用<define>标签将测试方法在组内再次进行分组并以name属性进行区分,
- * <run>通过define标签的name进行调用,以后修改测试直接修改run调用的名称即可
- *
- * 注:<b>多个group测试时,xml文件dom顺序必须是'<groups>'标签必须在'<test>'标签内, 否则会 有空指针异常
- * </p>
- *
- * <p>
- * Company:
- * </p>
- *
- * @author : Dragon
- *
- * @date : 2014年10月13日
- */
- public class TestngGroupsOfGroups {
- @Test(groups = { "windows.xp" })
- public void testMethod5() {
- System.err.println("(groups = { windows.xp })");
- }
- @Test(groups = { "windows.7" })
- public void testMethod6() {
- System.err.println("(groups = { windows.7 })");
- }
- @Test(groups = { "windows.8" })
- public void testMethod7() {
- System.err.println("(groups = { windows.8 })");
- }
- }
配置文件:testng-groupOfGroups.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
- <suite name="framework_testng">
- <test verbose="2" name="TestGroupsOfGroups">
- <groups>
- <define name="windows.xp">
- <include name="windows.xp" />
- </define>
- <define name="windows.7">
- <include name="windows.7" />
- </define>
- <define name="all">
- <include name="windows.*" />
- </define>
- <run>
- <include name="all" />
- <exclude name="windows.7" />
- </run>
- </groups>
- <classes>
- <class name="com.dragon.testng.annotation.TestngGroupsOfGroups" />
- </classes>
- </test>
- </suite>
测试结果:(注意:此时 被运行的测试分组将在run标签内进行配置,include和exclude时,是根据Define标签的name来决定)
- (groups = { windows.xp })
- (groups = { windows.8 })
- PASSED: testMethod5
- PASSED: testMethod7
- ===============================================
- TestGroupsOfGroups
- Tests run: 2, Failures: 0, Skips: 0
- ===============================================
testNG参考资料:http://www.yiibai.com/html/testng/2013/0915300.html
http://www.cnblogs.com/TankXiao/p/3888070.html
TestNG的组测试和组中组测试的更多相关文章
- 【C语言】输入一组整数,求出这组数字子序列和中最大值
//输入一组整数.求出这组数字子序列和中最大值 #include <stdio.h> int MAxSum(int arr[],int len) { int maxsum = 0; int ...
- Linux中组 与 用户的管理
在linux中建立组的指令是 groupadd 组名 相应的,删除组的指令: groupdel 组名 查看自己用户的组: groups 一个用户可以在多个组里面,用这个命令可以将用户添加到组: add ...
- 获取AD域中SYSVOL和组策略首选项中的密码
这种方法是最简单的,因为不需要特殊的“黑客”工具.所有的攻击必须做的是打开Windows资源管理器,并搜索域名为SYSVOL DFS共享的XML文件.在大多数情况下,以下XML文件将包含凭据:grou ...
- 【终端命令】组管理 和 Ubuntu中的"sudo"命令
一.超级用户root 1.超级用户和标准用户 Linux系统中的root账户通常 用于系统的维护和管理,对操作系统的 所有资源 具有所有访问权限. 在大多数版本的Linux系统中,都 不推荐 直接使用 ...
- 性能测试工具JMeter 基础(六)—— 测试元件: 线程组
线程组的定义: 线程组是测试计划执行的入口,所有的逻辑控制器和取样器都必须在线程组下,其他的元件根据位置的不同作用域是不同的. 线程组是每个线程都是独立运行测试脚本,一个线程组就等于一个用户,通过多个 ...
- windows组策略实验-本地组策略和域控组策略
windows组策略实验-本地组策略和域控组策略 本地组策略只对本地计算机有效,域策略是计算机加入域环境后对加入域的一组计算机.用户定义的策略,便于管理 本地组策略: 一.实验环境 Windows 7 ...
- java 多线程 线程组ThreadGroup;多线程的异常处理。interrupt批量停止组内线程;线程组异常处理
1,线程组定义: 线程组存在的意义,首要原因是安全.java默认创建的线程都是属于系统线程组,而同一个线程组的线程是可以相互修改对方的数据的.但如果在不同的线程组中,那么就不能"跨线程组&q ...
- Linux实际用户(组)ID,有效用户(组)ID,设置用户(组)ID
实际用户(组)ID: 标识用户是谁,这两个字段在登录时取自口令文件中的登录项. 有效用户(组)ID: 决定了对文件的访问权限,通常有效用户(组)ID等于实际用户(组)ID,谁运行有效ID就等于谁的实际 ...
- Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 今年是国 ...
随机推荐
- JAVA基础——编程练习(二)
JAVA编程练习(二) 今天我为了巩固之前的java基础知识的学习,再次进行实战演习,编写了一个小小的java控制台程序,主要是运用java面向对象的思想来完成这个小项目. 一.项目背景介绍 根据所学 ...
- JanaScript数据类型
数据类型 一.基础类型值包括:undefined.null.boolean.string.number 基础类型分别在内存中占有大小空间,它们的值保存在栈空间,我们通过按值来访问. undefined ...
- 配置tomcat的远程调试
参考文档: http://jingyan.baidu.com/article/0320e2c1f4ef6b1b87507b06.html http://flyer2010.iteye.com/blog ...
- 使用ajax提交form表单(转)
前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的aja ...
- Java基础语法<七> 对象与类
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个类的对象 ...
- mongoDB创建数据库用户
运行mongo.exe >use demo //切换到要创建用户的数据库 >db.createUser({user: "admin",pwd: "admin& ...
- java循环、数组练习
System.out.println("请输入学生个数"); int a=sc.nextInt();//定义一个变量说明学生的数量 int max=0; int[] scores= ...
- jvm003 类加载的过程
类加载的过程 一.加载 在加载阶段虚拟机需要完成以下三件事: 通过一个类的全限定名称来获取此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类的 ...
- ChartCtrl源码剖析之——CChartObject类
首先,做一些简单的铺垫,目前针对ChartCtrl源码的剖析只针对V.15版本.名义上说是剖析,倒不如说是记录下自己针对该控件的理解,非常感谢Cedric Moonen大神,一切的功劳与掌声都该赠予给 ...
- MFC常见问题以及解决方法(2)_Cstring和string互相转换
MFC默认编码是unicode(自己改成多字符集是不行的),对话框中对字符串的处理都是宽字符,而且添加变量会默认是CString类型,当你代码中想用string但又遇到必须转为CString的情况,就 ...