前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)

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

作者头像
北京-宏哥
发布2022-04-27 17:50:03
5090
发布2022-04-27 17:50:03
举报

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参考代码
代码语言:javascript
复制
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.参考代码

代码语言:javascript
复制
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参考代码
代码语言:javascript
复制
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.小结

  好了,时间也不早了,今天就分享和讲解到这里,希望对您有所帮助,感谢您耐心地阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.TestNG允许指定依赖关系
  • 3.dependOnMethods
    • 3.1代码设计
      • 3.2参考代码
        • 3.3运行代码
          • 3.4依赖关系的规则
            • 3.5依赖方法失败
            • 4.dependsOnGroups
              • 4.1代码设计
                • 4.2参考代码
                  • 4.3运行代码
                  • 5.小结
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档