TestNG可以执行复杂的测试方法分组。您不仅可以声明方法属于组,而且还可以指定包含其他组的组。然后可以在testng.xml配置一组特定的组,或同时排除另一组。

第一个例子:

java代码:

package com.kdzwy.practice;
import org.testng.annotations.Test;
/**包名:com.kdzwy.practice*作者:Adien_cui*时间:2017-3-28  下午5:41:26*描述:testng分组**/
package com.kdzwy.practice;
import org.testng.annotations.Test;
/**包名:com.kdzwy.practice*作者:Adien_cui*时间:2017-3-28  下午5:41:26*描述:testng分组**/
public class TestngGroups {@Test(groups = { "group1", "group2" })public void testMethod1() {System.out.println("testMethod1");}@Test(groups = {"group1", "group2"} )public void testMethod2() {System.out.println("testMethod2");}@Test(groups = { "group1" })public void testMethod3() {System.out.println("testMethod3");}
}

testng.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1"><test name="login"><groups><run><inlude name="group2" /></run></groups><classes><class name="com.kdzwy.practice.TestngGroups" />         </classes></test>
</suite>

运行结果:

可以看到在testng.xml的run里只配置了group2,所以只运行了testMethod1和testMethod2。

排除组

testng.xml配置如下

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1"><test name="login"><groups><run><include name="group1" /><exclude name="group2" /></run></groups><classes><class name="com.kdzwy.practice.TestngGroups" />         </classes></test>
</suite>

运行结果:

这里的testng.xml中使用了exclude标签,排除了group2的运行,所以只运行了testMethod3。

群组

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1"><test name="login"><groups><define name="part"><include name="group2" /></define><define name="all"><include name="group1" /><include name="group2" /></define><run><include name="all" /></run></groups><classes><class name="com.kdzwy.practice.TestngGroups" />         </classes></test>
</suite>

运行结果:

部分组

可以在类级别定义组,然后在方法级添加组:

 package com.kdzwy.practice;
import org.testng.annotations.Test;
/**包名:com.kdzwy.practice*作者:Adien_cui*时间:2017-3-28  下午7:56:04*描述:部分组**/
@Test(groups = { "class-group" })
public class TestngGroups2 {@Test(groups = { "method-group"})public void method1() {System.out.println("Method1");}public void method2() { System.out.println("Method2");}
}
在这个类中,method2()是组“class-group”的一部分,它在类级别定义,而method1()属于“class-group”和“method-group”两者。

testng.xml:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1"><test name="login"><groups><run><include name="method-group" /></run></groups><classes><class name="com.kdzwy.practice.TestngGroups2" />         </classes></test>
</suite>

运行结果:

testng.xml:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1"><test name="login"><groups><run><include name="class-group" /></run></groups><classes><class name="com.kdzwy.practice.TestngGroups2" />         </classes></test>
</suite>

运行结果:

@BeforeGroups , @AfterGroups 注解使用

@BeforeGroups注解的方法将在本组内任何测试方法执行前被执行一次,可用于执行初始化操作。类似的@AfterGroups 注解的方法将在本组内任何测试方法执行后被执行,可用于关闭资源。
java示例:

package com.kdzwy.practice;import org.testng.annotations.AfterGroups;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test;/**包名:com.kdzwy.practice*作者:Adien_cui*时间:2017-3-28  下午8:12:33*描述:**/
public class TestngGroups3 {@BeforeGroups(groups={"group-b"})public void setUp(){System.out.println("Method---setup");}@AfterGroups(groups={"group-b"})public void tearDown(){System.out.println("Method---tearDown");}@Test(groups = { "group-a" })public void aaaMethod() {System.out.println("Method---aaa");}@Test(groups = { "group-b"} )public void bbbMethod() {System.out.println("Method---bbb");}@Test(groups = { "group-a","group-b" })public void cccMethod() {System.out.println("Method---ccc");}
}

testng.xml:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1"><test name="login"><groups><run><include name="group-b" /></run></groups><classes><class name="com.kdzwy.practice.TestngGroups3" />         </classes></test>
</suite>

运行结果:

因为bbbMethod和cccMethod在组group-b里,所以可以看到setUp在bbbMethod之前运行了,而tearDown在cccMethod之后运行了

TestNG-分组groups相关推荐

  1. 使用java+TestNG进行接口回归测试

    TestNG是一个开源自动化测试框架,TestNG表示下一代(Next Generation的首字母). TestNG类似于JUnit(特别是JUnit 4),但它不是JUnit框架的扩展,相较于Ju ...

  2. 使用java+TestNG进行接口回归测试 1

    [技术沙龙002期]数据中台:宜信敏捷数据中台建设实践|宜信技术沙龙 将于5月23日晚8点线上直播,点击报名 TestNG是一个开源自动化测试框架,"NG"表示下一代(Next G ...

  3. testNG入门详解

    TestNG 的注释: @DataProvider @ExpectedExceptions @Factory @Test @Parameters <suite name="Parame ...

  4. Testng框架简介

    文档参考自官方地址: http://testng.org/doc/documentation-main.html#testng-listeners 目录 1. 介绍 2 - Annotation 3 ...

  5. TestNG测试框架介绍整理

    TestNG学习 什么是TestNG 添加pom maven依赖 Idea创建module 注解之@BeforeMethod和@AfterMethod 注解之@BeforeClass和@AfterCl ...

  6. TestNG详解-深度好文

    1. 介绍     TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试 ...

  7. (一)TestNG测试框架(含Demo源码)

    目录 一.TestNG是什么 二.关于TestNG使用 三.关于TestNG流程控制 四.结合场景讲解TestNG注解 五.TestNG框架(Demo源码) 六.补充知识点 一.TestNG是什么 T ...

  8. testng xml_TestNG XML

    testng xml TestNG XML file allows us to configure a test suite and execute it from the command line ...

  9. TestNG的HelloWorld例子以及如何在命令行下运行

    环境 操作系统:Ubuntu 20.04 IntelliJ IDEA:2022.1.2 (Community Edition) Java:17.0.1 Maven:3.8.5 TestNG:7.6.0 ...

最新文章

  1. 调制的缺点_电光调制与声光调制原理和应用领域
  2. HDU 1874 畅通工程续
  3. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
  4. 可视化 nltk_词嵌入:具有Genism,NLTK和t-SNE可视化的Word2Vec
  5. 在此之前的软件系统做开发—需求的研究框架
  6. RHEL5.6更新yum源
  7. “我创业成功的十大秘诀”
  8. 多智能体强化学习MAPPO源代码解读
  9. Web Service简单demo
  10. 对ABAP程序调优的学习(一)select 改 read table
  11. 红米k50至尊版和小米12spro区别 哪个好
  12. 使用Python做接口测试
  13. RDD简介,spark-shell,spark-submit提交任务简单示例
  14. 喜闻乐见的「手算题」技巧3:巧用 Python
  15. iOS开发--适配iOS 10以及Xcode 8
  16. 程序员必备的商业思维:君子也要言“利”!
  17. VVC 算法描述 R2002(VTM 9) IBC部分 机器翻译
  18. C - Concatenation
  19. Android不同手机设置相同dp的图片显示大小不一致(记录)
  20. 《影响力》读书笔记,第七章 稀缺

热门文章

  1. 自考学历到底有没有用?
  2. [嵌入式开发模块]AD转换芯片ADS8344驱动模块
  3. Red Giant Magic Bullet Suite介绍
  4. MySQL 数据库基础(1)
  5. 图文讲解 上网本 无光驱 系统蓝屏/系统无法开机 用U盘 winpe 启动U盘 重装系统的方法(通用PE工具箱/老毛桃/大白菜WinPE)
  6. 收藏史上最私募基金投资模式及策略
  7. 某村庄供水工程设计(设计报告+cad图纸+预算工程量清单)
  8. php利用swfuplod、flash进行图片上传
  9. 本地数据迁移阿里云oss方法
  10. flash +asp.net +fcs实现视频聊天