《手把手教你》系列基础篇(七十八)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 中篇(详解教程)
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.小结
好了,今天时间不早了,而且知识点特别的简单,今天就分享到这里,下一篇宏哥利用实际例子讲解一下依赖测试。
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
公众号(关注宏哥)                                                                                 客服微信