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

简介: 【6月更文挑战第19天】本文介绍了使用TestNG框架配置XML文件来管理测试用例的分组和依赖关系。

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.小结

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



每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):


Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章
|
8月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
397 8
|
9月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
521 4
|
7月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
1076 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
7月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
238 31
Selenium IDE:Web自动化测试的得力助手
|
9月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
9月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
605 6
|
9月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
1608 5
|
8月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
125 0
|
9月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
168 0
|
Java 测试技术 数据格式
TestNG 使 Java 单元测试轻而易举
在每个现代软件包的构造阶段,测试这一实践都扮演着中心角色。过去那种先编写代码,然后有空的时候再测试(或者根本不测试)的日子已经一去不返,因为大多数开发人员现在认识到需要采用编码和测试彼此交织、同步推进的软件方法论,以便尽早发现 bug,在开发过程开始的时候就识别出主要的风险。
1137 0

热门文章

最新文章