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

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工具基础使用教程

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值