《手把手教你》系列基础篇(七十七)-java+|《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)
1.简介
今天主要是讲解和分享:TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题。如果不用dependsOnMethods,testNG会自动根据@Test方法名称的首字母排序来执行测试方法。但是有时,我们可能需要以特定顺序调用测试用例中的方法,或者可能希望在方法之间共享一些数据和状态。 TestNG支持这种依赖关系,因为它支持在测试方法之间显式依赖的声明。
2.TestNG允许指定依赖关系
①在@Test注释中使用属性dependsOnMethods
②在@Test注释中使用属性dependsOnGroups。
在TestNG中,我们使用dependOnMethods和dependsOnGroups来实现依赖测试。 如果依赖方法失败,则将跳过所有后续测试方法。
3.dependOnMethods
通过方法名给出测试方法的依赖关系。一个简单的例子,“test1()”依赖“test4()”。
正常的测试用例顺序应该是test1>test2>test3>test4,这里在test1写了依赖关系为test4,所以此时运行后的结果是如图中test4>test2>test3>test1。
3.1代码设计
文章图片
3.2参考代码
package library; import org.testng.annotations.Test; /** * @author 北京-宏哥 * * @公众号:北京宏哥 * * 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试(详解教程) * * 2022年3月03日 */public class TestDepend {@Test(dependsOnMethods = {"test4"}) public void test1() {System.out.println("test1"); }@Test public void test2() {System.out.println("test2"); }@Test public void test3() {System.out.println("test3"); }@Test public void test4() {System.out.println("test4"); } }
3.3运行代码 1.运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:
文章图片
3.4依赖关系的规则 从上边的运行结果可以看出依赖关系的规则是:
① 优先被依赖关系方法
② 没有依赖关系的
③ 需要依赖关系的
3.5依赖方法失败 1.如果
test4()
失败,则将跳过test1()
。2.参考代码
package library; import org.testng.annotations.Test; /** * @author 北京-宏哥 * * @公众号:北京宏哥 * * 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试(详解教程) * * 2022年3月03日 */public class TestDepend {@Test(dependsOnMethods = {"test4"}) public void test1() {System.out.println("test1"); }@Test public void test2() {System.out.println("test2"); }@Test public void test3() {System.out.println("test3"); }@Test public void test4() {System.out.println("test4"); throw new RuntimeException(); } }
3.运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:
文章图片
4.dependsOnGroups
以组名方式测试依赖方法。对于多个被依赖的测试方法,可以通过方法名直接给出(dependsOnMethods = {"test2","test3"}),也可以通过组名给出被依赖的测试方法。
组名添加:@Test(groups={“组名称”})
@Test(dependsOnGroups=“组名”)
注:方法名时用的是{};
4.1代码设计
文章图片
4.2参考代码
package library; import org.testng.annotations.Test; /** * @author 北京-宏哥 * * @公众号:北京宏哥 * * 《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试(详解教程) * * 2022年3月03日 */public class TestDepend {@Test public void test() {System.out.println("test"); }@Test(dependsOnGroups = "T23") public void test1() {System.out.println("test1"); }@Test(groups = {"T23"}) public void test2() {System.out.println("test2"); }@Test(groups = {"T23"}) public void test3() {System.out.println("test3"); }}
4.3运行代码 1.运行代码,右键Run AS->TestNG Suite,控制台输出,如下图所示:
文章图片
5.小结
【《手把手教你》系列基础篇(七十七)-java+|《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)】好了,时间也不早了,今天就分享和讲解到这里,希望对您有所帮助,感谢您耐心地阅读!
推荐阅读
- 全局视角系统学习《推荐系统》,实战中提升竞争力吾爱学习无mi
- c语言程序设计杨毅版,C语言程序设计
- Vite 实战(手把手教你写一个 Vite 插件)
- ES6箭头函数与普通函数的区别
- java|《Spring Boot 实战》随记
- C/C++气象数据中心实战,手把手教你做工业级项目
- 《手把手教你》系列基础篇(七十六)-java+|《手把手教你》系列基础篇(七十六)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 下篇(详解教程)
- 服务器|彻底搞懂Cookie、Session、JWT和Token(强烈推荐)《彻底搞懂Cookie、Session、JWT和Token|CSDN创作打卡》
- java基础|String、StirngBuffer、StringBuilder的区别《区别|CSDN创作打卡》
- Python|【Pygame小游戏】《坦克大战》,那些童年的游戏你还记得几个呢()