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

简介: 【6月更文挑战第20天】TestNG是一个Java测试框架,提供两种测试方法依赖机制:强依赖(所有前置方法成功后才运行)和弱依赖(即使前置方法失败,后置方法仍运行)。文中通过代码示例展示了这两种依赖如何实现,并解释了当依赖方法失败时,如何影响后续方法的执行。文章还包含了TestNG Suite的运行结果截图来辅助说明。

1.简介

今天本来是打算实践应用一下前边的知识点,但是忘记漏了依赖的一个知识点,宏哥个人觉得还是比较重要的,所以今天先说这个,下一篇再讲解和分享实际应用。今天主要讲解一下依赖测试的依赖机制。

2.依赖机制

TestNG提供了两种依赖机制:

1.强依赖关系:所有的被依赖的方法必须被成功运行,才会运行到后续的方法。哪怕只有一个前置方法运行失败了,有依赖关系的后置方法都会被跳过。既有先后顺序关系,也有决定关系。

2.弱依赖关系:不论前置方法是否成功运行,有依赖的后置方法都会得到运行,他们之间仅仅有前后顺序关系,前者的成功与否并不决定后者是否运行。

3.强依赖关系

3.1代码设计

3.2参考代码

package library;


import org.testng.annotations.Test;


/**

* @author 北京-宏哥

*

* @公众号:北京宏哥

*

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

*

* 2022年3月05日

*/


public class TestDepend {

   

   @Test

   public void failMethod(){

       

       System.out.println("这个方法运行失败");

       throw new RuntimeException();


   }

   

   @Test(dependsOnMethods = {"failMethod"})

   public void skipMethod1(){

       System.out.println("这个方法永远不会运行,所以不会有输出");

   }

   

   @Test(dependsOnMethods = {"skipMethod1"})

   public void skipMethod2(){

       System.out.println("这种依赖连带的我也不会被执行");

   }

 

}

3.3运行代码

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

强制依赖情况:前置依赖失败,导致后边这些依赖方法都被跳过了

2.上边这个也许看的不清晰,宏哥给你们看看这个比较清晰,如下图所示:

4.弱依赖关系

4.1代码设计

4.2参考代码

package library;


import org.testng.annotations.Test;


/**

* @author 北京-宏哥

*

* @公众号:北京宏哥

*

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

*

* 2022年3月05日

*/


public class TestDepend {

   

   @Test

   public void failMethod(){

       

       System.out.println("这个方法运行失败");

       throw new RuntimeException();


   }

   

   @Test(dependsOnMethods = {"failMethod"}, alwaysRun=true)

   public void skipMethod1(){

       System.out.println("经管failMethod执行失败了,但是我是弱依赖,所以我会继续执行");

   }

   

   @Test(dependsOnMethods = {"failMethod"})

   public void skipMethod2(){

       System.out.println("我是强依赖,failMethod失败了,我不能执行");

   }

 

}

4.3运行代码

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

2.上边这个也许看的不清晰,宏哥给你们看看这个比较清晰,如下图所示:

5.小结

好了,今天时间也不是很早了,宏哥就讲解和分享到这里,感谢您耐心的阅读!


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

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


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

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

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

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

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

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

Pycharm工具基础使用教程

相关文章
|
1天前
|
XML 测试技术 数据格式
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(下)
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(下)
8 3
|
1天前
|
Java 测试技术 程序员
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(上)
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(上)
10 1
|
2天前
|
IDE Java 机器人
如何在Java中进行单元测试:JUnit 5的使用指南
如何在Java中进行单元测试:JUnit 5的使用指南
|
2天前
|
Java 测试技术 数据库
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
9 0
|
2天前
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
6 0
|
2天前
|
存储 Python
自动化办公的python代码
自动化办公的python代码
10 0
|
6天前
|
Linux 数据处理 文件存储
Python文件自动化处理(一)
`os` 模块是 Python 中用于操作系统交互的核心模块,支持文件和目录的创建、移动、复制等操作,以及处理文件路径和名称。它还提供了 `os.walk()` 函数来遍历目录树,查找文件。字符串方法如 `startswith()` 和 `endswith()` 用于过滤文件名。`glob` 模块则支持使用通配符 (`*`, `?`, `[seq]`) 查找匹配的文件。
|
6天前
|
Python
Python文件自动化处理(二)
使用Python自动化处理Excel涉及`openpyxl`库,包括打开和读取表格数据:`load_workbook()`、获取工作表、获取尺寸;读取单元格数据:`sheet['A1']`、`cell.value`;以及写入内容:`sheet['A1']='hello,Python'`、`cell.value='hello,Python'`、`sheet.append()`和插入行/列。此外,`python-docx`模块用于Word处理,支持创建、修改文档,添加标题、段落、文字、图片和表格,并能设置样式和格式。
|
11天前
|
运维 监控 API
自动化运维实践指南:Python脚本优化服务器管理任务
本文探讨了Python在自动化运维中的应用,介绍了使用Python脚本优化服务器管理的四个关键步骤:1) 安装必备库如paramiko、psutil和requests;2) 使用paramiko进行远程命令执行;3) 利用psutil监控系统资源;4) 结合requests自动化软件部署。这些示例展示了Python如何提升运维效率和系统稳定性。
29 8
|
13天前
|
数据采集 人工智能 数据挖掘
让工作自动化起来!无所不能的Python
让工作自动化起来!无所不能的Python