1.简介

上一篇讲解了依赖测试的各种方法,今天继续讲解依赖测试的方法,这一篇主要是讲解和分享通过xml文件配置组名依赖方法( 主要是测试组的用法)。废话不说,直接上干货。

2.实例

测试组:一个组可包含多个测试方法,可进行组嵌套。

2.1代码设计

1.test1属于功能测试,test2属于接口测试,test3属于接口和功能测试 ,test4是不属于任何组,如下图所示:

2.参考代码

package library;

import org.testng.annotations.Test;

/**
* @author 北京-宏哥
*
* @公众号:北京宏哥
*
* 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试(详解教程)
*
* 2022年3月05日
*/ public class TestDepend { @Test(groups = {"Function"})
public void test1() { System.out.println("Function-Test");
} @Test(groups = {"API"})
public void test2() { System.out.println("API-Test");
} @Test(groups = {"function","api"})
public void test3() { System.out.println("function and api");
} @Test
public void test4() { System.out.println("not in API and not in Function");
}
}

3.运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

2.2仅运行API测试

1.仅运行API测试 时,xml文件的配置,如下图所示:

2.参考代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相关设置,这里paraller是执行的模式,有tests classes methods三种取值,thread-count表示两个线程执行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<!--<test name="Test">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<!--<test name="Test1">
<parameter name="Browser" value="Chrome" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<test name="example1">
<groups>
<run>
<include name="API" />
</run>
</groups>
<classes>
<class name="library.TestDepend" />
</classes>
</test>
</suite> <!-- Suite -->

3.选中xml文件,运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

2.3仅运行function

从上边实例可以看出,结果是只运行了API方法的测试用例,如果只运行功能测试,这时把api换成function即可,如下图所示:

2.4运行API和功能测试

1.xml文件的配置,如下图所示:

2.参考代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相关设置,这里paraller是执行的模式,有tests classes methods三种取值,thread-count表示两个线程执行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<!--<test name="Test">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<!--<test name="Test1">
<parameter name="Browser" value="Chrome" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<test name="example1">
<groups>
<run>
<include name="API" />
<include name="Function" />
</run>
</groups>
<classes>
<class name="library.TestDepend" />
</classes>
</test>
</suite> <!-- Suite -->

3.选中xml文件,运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

3.exclude

实例2中,介绍的是include。这里宏哥再介绍一下exclude。执行除了某用例之外的其他用例。例如,执行除了API接口的其他用例。

1.xml文件的配置,如下图所示:

2.参考代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相关设置,这里paraller是执行的模式,有tests classes methods三种取值,thread-count表示两个线程执行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<!--<test name="Test">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<!--<test name="Test1">
<parameter name="Browser" value="Chrome" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<test name="example1">
<groups>
<run>
<exclude name="API" />
</run>
</groups>
<classes>
<class name="library.TestDepend" />
</classes>
</test>
</suite> <!-- Suite -->

3.选中xml文件,运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

4.正则表达式来写组名

这里先把组名API改成了 API test,正则用来代替组名较长的时候

1.xml文件的配置,如下图所示:

2.参考代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相关设置,这里paraller是执行的模式,有tests classes methods三种取值,thread-count表示两个线程执行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<!--<test name="Test">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<!--<test name="Test1">
<parameter name="Browser" value="Chrome" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<test name="example1">
<groups>
<run>
<include name="API.*" />
</run>
</groups>
<classes>
<class name="library.TestDepend" />
</classes>
</test>
</suite> <!-- Suite -->

3.选中xml文件,运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

5.组嵌套

每个用例都要归属于一个组名,所有组都归All管理,这样在xml中run一个All 即可。

1.xml文件的配置,如下图所示:

2.参考代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相关设置,这里paraller是执行的模式,有tests classes methods三种取值,thread-count表示两个线程执行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<!--<test name="Test">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<!--<test name="Test1">
<parameter name="Browser" value="Chrome" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<test name="example1">
<groups>
<define name="All">
<include name="API Test" />
<include name="Function" />
</define>
<run>
<include name="All" />
</run>
</groups>
<classes>
<class name="library.TestDepend" />
</classes>
</test>
</suite> <!-- Suite -->

3.选中xml文件,运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

6.其他

根据xml配置文件中的  groups 的<dependencies>来做用例组依赖执行。

1.xml文件的配置,如下图所示:

2.参考代码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite相关设置,这里paraller是执行的模式,有tests classes methods三种取值,thread-count表示两个线程执行用例 -->
<suite name="Suite" parallel="tests" thread-count="2">
<!--<test name="Test">
<parameter name="Browser" value="Firefox" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<!--<test name="Test1">
<parameter name="Browser" value="Chrome" />
<classes>
<class name="lessons.TestDiffBrowser"/>
</classes>
</test> Test -->
<test name="example1">
<groups>
<dependencies>
<group name="API" depends-on="Function Not"/>
</dependencies>
</groups>
<classes>
<class name="library.TestDepend" />
</classes>
</test>
</suite> <!-- Suite -->

3.选中xml文件,运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:

测试用例组的顺序是:先执行被依赖的组的方法用例,再执行没有依赖关系的 最后执行需要依赖关系的用例方法。

7.小结

好了,今天时间不早了,而且知识点特别的简单,今天就分享到这里,下一篇宏哥利用实际例子讲解一下依赖测试。

《手把手教你》系列基础篇(七十八)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 中篇(详解教程)的更多相关文章

  1. 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)

    1.简介 今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用dependsOnMethods,testNG会自动根据@Test方法名称 ...

  2. 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)

    1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...

  3. 《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)

    1.简介 其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下.报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果.失败点和失败原因.另一方面,日志记录对 ...

  4. 《手把手教你》系列基础篇(八十四)-java+ selenium自动化测试-框架设计基础-TestNG日志-上篇(详解教程)

    1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助 ...

  5. 《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)

    1.简介 页面对象模型(Page Object Model)在Selenium Webdriver自动化测试中使用非常流行和受欢迎,作为自动化测试工程师应该至少听说过POM这个概念.本篇介绍POM的简 ...

  6. 《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)

    1.简介 上一篇宏哥介绍是如何使用logback将日志输出到控制台中,但是如果需要发给相关人需要你拷贝出来,有时候由于控制台窗口的限制,有部分日志将会无法查看,因此我们还是需要将日志输出到文件中,因此 ...

  7. 《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)

    1.简介 本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.拖拽操 ...

  8. 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)

    1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来.今天宏哥就在这里把这种测试场景讲解和分享一下. 2.用法 创建一个执行 JS 的对象 ...

  9. 《手把手教你》系列基础篇(七十五)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 中篇(详解教程)

    1.简介 上一篇中介绍了DataProvider如何传递参数,以及和一些其他方法结合传递参数,今天宏哥接着把剩下的一些常用的也做一下简单的介绍和分享. 2.项目实战1 @DataProvider + ...

随机推荐

  1. 帆软报表(finereport) 组合地图 保持系列名和值居中

    自定义JavaScript代码,使用HTML解析 function(){ var name = this.name; var total = '<div style="width:10 ...

  2. 关于git和SVN的介绍和区别

    主要对git,svn进行一个简单的介绍. 顺带,我会在后面把我整理的一整套CSS3,PHP,MYSQL的开发的笔记打包放到百度云,有需要可以直接去百度云下载,这样以后你们开发就可以直接翻笔记不用百度搜 ...

  3. 基于3U PXIe的ZU7EV图像编解码设计方案

    1.板卡简介 基于3U PXIe的ZU7EV图像编码卡用于加固设备的图像接入,编解码采集存储.用于机载.舰载.车载等工作场景,支持工业级温度工作.(此方案是由北京太速设计的,已应用到实际领域) 2.主 ...

  4. 终极指南:企业级云原生 PaaS 平台日志分析架构全面解析

    早些时候 Erda Show 针对微服务监控.日志等内容做了专场分享,很多同学听完后意犹未尽,想了解更多关于日志分析的内容.Erda 团队做日志分析也有一段时间了,所以这次打算和大家详细分享一下我们在 ...

  5. 1、Oauth概念与模式

    参考 OAuth 2.0 的一个简单解释

  6. IDEA2019.2.2激活码,亲测可用

    3AGXEJXFK9-eyJsaWNlbnNlSWQiOiIzQUdYRUpYRks5IiwibGljZW5zZWVOYW1lIjoiaHR0cHM6Ly96aGlsZS5pbyIsImFzc2lnb ...

  7. [自动化]基于kolla-ansible部署的openstack自动化巡检生成xlsx报告

    自动化巡检介绍 此巡检项目在kolla-ansible部署的openstack环境上开发,利用ansible-playbook编排的功能,对巡检的任务进行编排和数据处理.主要巡检的对象有IaaS平台和 ...

  8. [数分笔记]用Dedekind切割定理证明确界定理

    1.定理内容 Dedekind切割定理:设是实数集的一个切割,则或者有最大数,或者有最小数. 确界定理:非空有上界的数集必有上确界,非空有下界的数集必有下确界. 2.证明过程 设非空数集有上界 记,即 ...

  9. 【CPU】进程管理之五状态模型

    本文为第三篇,进程管理之五状态模型,进程在操作系统里边是有多个状态的,本文就是了解进程在操作系统中的多个状态 1.进程的五个状态 创建状态 就绪状态 阻塞状态 执行状态 终止状态 2.进程处于这五种状 ...

  10. iOS动态库和静态库的运用

    概念认识 什么是库 库是共享程序代码的方式,库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.在开发过程中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把 ...