iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >TestNg中自动化测试用例设计与管理的通用策略有哪些
  • 929
分享到

TestNg中自动化测试用例设计与管理的通用策略有哪些

2024-04-02 19:04:59 929人浏览 八月长安
摘要

本篇文章给大家分享的是有关TestNg中自动化测试用例设计与管理的通用策略有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。自动化测试的用例

本篇文章给大家分享的是有关TestNg中自动化测试用例设计与管理的通用策略有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

自动化测试的用例设计通用策略

TestNg中自动化测试用例设计与管理的通用策略有哪些

我们在做自动化测试时,是需要对用例进行管理的,比较常用的方案是(以java为例)

  • 一个project对应一个产品;

  • 一个package对应产品中的一个模块;

  • 一个class对应模块中的一个场景;

  • 一个测试方法对应场景中的一个测试点;

  • 最后,通过suite,定义组织要执行的class。

如下图所示,TestNGDemo定义为一个产品、包com.my.case1、com.my.case2和com.my.case3代表产品中的3个模块,而MyCase1、MyCase2等6个类代表6个测试场景。

TestNg中自动化测试用例设计与管理的通用策略有哪些

我们可以在类中设计具体的测试点,如下图所示,类MyCase5中的方法f9和f10代表两个测试点(基于Testng)

TestNg中自动化测试用例设计与管理的通用策略有哪些

TestNg中用例组织

Testng通过配置文件来对测试用例进行管理,具体规则如下:

  • 一个suite里面可以定义要执行的test,可以包括多个test;

  • 一个test里面可以定义要执行的package和class(可以同时定义package和class,二者是并列关系)

  • 一个class可以设置要执行的method,具体组织形式如下:

Suite里定义了两个test: Simpletest和advancedtest;

在Simpletest中定义了要执行的package:com.my.case1和class: com.my.case2.MyCase4;

在类MyCase4中定义了要执行的方法f7和不执行的方法f8;

在advancedtest中定义了要执行的class:com.my. case3.MyCase5

TestNg中自动化测试用例设计与管理的通用策略有哪些

运行结果如下:

com.my.case1包下的类MyCase1和类MyCase2中的所有方法都运行了,f1、f2、f3和f4;

类MyCase4中只运行了方法f7;

类MyCase5中的所有方法都运行了,f9和f10。

TestNg中自动化测试用例设计与管理的通用策略有哪些

TestNG中group的应用

Group的基础使用

TestNG可以执行复杂的测试方法分组进而把测试用例进行分类。可以通过@Test(groups = { "组1","组2" })进行标识;

分组可以作用在具体的类和方法上,作用在类上表示类里的所有方法都属于该分组;而作用在方法上则表示只有该方法属于该分组。

具体代码如下:

MyCase1类具备smoketest标签 @Test(groups = { "smoketest" }) public class MyCase1 {  @Test  public void f1() {      System.out.println("MyCase1 f1");      assertEquals("a","b");       }   @Test   public void f2() {    System.out.println("MyCase1 f2");    assertEquals("a","a"); } }  MyCase2类只有f3方法具备smoketest标签 public class MyCase2 {  @Test(groups = { "smoketest" })  public void f3() {      System.out.println("MyCase2 f3");      assertEquals("a","b");       }   @Test   public void f4() {    System.out.println("MyCase2 f4");    assertEquals("a","a"); } }  MyCase3类具备perfORMancetest标签 @Test(groups = { "performancetest" }) public class MyCase3 {  @Test  public void f5() {      System.out.println("MyCase3 f5");      assertEquals("a","b");       }     @Test   public void f6() {    System.out.println("MyCase3 f6");    assertEquals("a","a"); } }  MyCase4类只有f8方法具备performancetest标签 public class MyCase4 {  @Test  public void f7() {      System.out.println("MyCase4 f7");      assertEquals("a","b");       }     @Test(groups = { "performancetest" })   public void f8() {    System.out.println("MyCase4 f8");    assertEquals("a","a"); } }  MyCase5类具备securitytest 和performancetest标签 public class MyCase5 { @Test(groups = { "securitytest","performancetest" })  public void f9() {      System.out.println("MyCase5 f9");      assertEquals("a","b");       }   @Test   public void f10() {    System.out.println("MyCase5 f10");    assertEquals("a","a"); } }  MyCase6类具备securitytest标签 @Test(groups = { "securitytest" }) public class MyCase6 {  @Test  public void f11() {      System.out.println("MyCase6 f11");      assertEquals("a","b");       }   @Test   public void f12() {    System.out.println("MyCase6 f12");    assertEquals("a","a"); } }

设置配置文件,如下所示:

TestNg中自动化测试用例设计与管理的通用策略有哪些

其中define标签部分定义了需要的组分类,该部分可以省略,但个人建议保留,使用define可以清晰的看到现有的group结构;

run标签带表了需要运行的group信息,我们可以通过include和exclude对需要执行的分组和不需要执行的分组进行设置,方法非常简单,如下所示:

<run>  <include name="group1" />  <exclude name="group2" />  </run>

上图中通过include来设置运行securitytest组标识的用例。

运行结果如下:可以看到securitytest标签下的用例都运行了

TestNg中自动化测试用例设计与管理的通用策略有哪些

@BeforeGroups和@AfterGroups的应用

@BeforeGroups注解的方法将在本组内任何测试方法执行前被执行一次,可用于执行初始化操作。类似的@AfterGroups  注解的方法将在本组内任何测试方法执行后被执行,可用于关闭资源。@Test(groups = { "smoketest" })

public class MyCase1 {  @BeforeGroups(groups = { "smoketest" })  public void setup() {     System.out.println("smoketest setup");       }  @AfterGroups(groups = { "smoketest" })  public void teardown() {     System.out.println("smoketest teardown");       }  @Test  public void f1() {      System.out.println("MyCase1 f1");      assertEquals("a","b");       }     @Test   public void f2() {    System.out.println("MyCase1 f2");    assertEquals("a","a"); } }

代码执行如下:可以看到@BeforeGroups和@AfterGroups在组smoketest

的运行前后分别执行。

TestNg中自动化测试用例设计与管理的通用策略有哪些

以上就是TestNg中自动化测试用例设计与管理的通用策略有哪些,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网VUE频道。

--结束END--

本文标题: TestNg中自动化测试用例设计与管理的通用策略有哪些

本文链接: https://www.lsjlt.com/news/81105.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • TestNg中自动化测试用例设计与管理的通用策略有哪些
    本篇文章给大家分享的是有关TestNg中自动化测试用例设计与管理的通用策略有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。自动化测试的用例...
    99+
    2024-04-02
  • 常用的Python自动化测试框架有哪些
    本篇内容介绍了“常用的Python自动化测试框架有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1...
    99+
    2024-04-02
  • 常用的golang自动化测试框架有哪些
    常用的Golang自动化测试框架有:1. testing:Golang自带的测试框架,可以进行单元测试和性能测试。2. testif...
    99+
    2023-08-08
    golang
  • 互联网中常用自动化测试工具有哪些
    小编给大家分享一下互联网中常用自动化测试工具有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如今,移动应用在企业的地位越来越重要,消费者对移动设备的要求也越来...
    99+
    2023-06-27
  • PHP Git 实战:代码管理与协作中的自动化工具有哪些?
    git 在 php 中的自动化工具简化了代码管理和协作:git flow:自动化 git flow 工作流程,创建分支、合并请求和发布新版本。phpdotenv:自动加载环境变量,与 g...
    99+
    2024-05-13
    php git composer
  • 用于基本社区管理任务自动化的Python脚本有哪些
    这篇文章主要讲解了“用于基本社区管理任务自动化的Python脚本有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“用于基本社区管理任务自动化的Python脚本有哪些”吧!tshirts.p...
    99+
    2023-06-15
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作