您的位置 首页 java

Java接口自动化之TestNG单元测试框架(二)

上一篇 Java 接口自动化系列文章:Java接口自动化之TestNG单元测试框架(一),主要 TestNG的简介、@Test注解及其属性

以下主要介绍testng.xml配置文件控制 测试用例 的运行

之前的文章,我们是直接运行当前类下的用例,在正常项目中,我们一般会有多个模块,每个模块下又有多个用例,那么如果只是想运行某个包或类下的用例,如何控制用例运行呢,此时, testng.xml配置文件就派上用场了。

在执行测试用例的时候,我们可以从包、类、方法(测试用例)三个维度划分,即执行特定包下的用例、执行特定类下的用例、执行指定的方法(测试用例)。

01

指定特定包

指定特定包即执行特定包下的所有测试用例。

①新建两个包package1、package2,每个包下分别新建类TestDemo1、TestDemo2,结构如下:

Java接口自动化之TestNG单元测试框架(二)

②TestDemo1类内容如下:

 package package1;
import org.testng.annotations.Test;
@Test
public class TestDemo1 {
    public  void  testDemo1() {
        System.out.println("这是package1下的测试用例");
    }
}
  

③TestDemo2类内容如下:

 
package package2;
import org.testng.annotations.Test;
@Test
public class TestDemo2 {
    public void testDemo2() {
        System.out.println("这是package2下的测试用例");
    }
}  

maven 项目的 resources 目录下新建文件 testng.xml,内容结构如下

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "#34; >
<suite name="SuiteTest">
    <test name="test1" >
        <packages>
            <package name="package1"></package>
        </packages>
    </test>
    <test name="test2">
        <packages>
            <package name="package2"></package>
        </packages>
    </test>
</suite>
  

标签说明:

  • <suite>: 定义一个套件,一个xml文件只能有一个<suite>,name 用来定义测试套件的名称。
  • <test>: 表示定义了一个测试,name 定义测试的名称。
  • <packages>: 表示定义包的测试类。
  • <package>: 表示定义特定的包,执行包下的测试用例。

⑤右键运行testng.xml,执行结果如下:

 
这是 package 1下的测试用例
这是package2下的测试用例
===============================================
SuiteTest
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0  

从上面结果可以看出,指定包下的测试用例都已执行。

02

指定特定类

指定特定类即执行特定类下的所有测试用例。

①新建两个包package1、package2,每个包下分别新建类TestDemo1、TestDemo2(上个例子创建过的无需重新创建)。

②testng.xml内容修改如下:

 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "#34;>
<suite name="SuiteTest">
    <test name="test1">
        <classes>
            <class name="package1.TestDemo1"></class>
        </classes>
    </test>
    <test name="test2">
        <classes>
            <class name="package2.TestDemo2"></class>
        </classes>
    </test>
</suite>  

标签说明:

  • <suite>: 定义一个套件,一个xml文件只能有一个<suite>,name 用来定义测试套件的名称。
  • <test>: 表示定义了一个测试,name 定义测试的名称。
  • <classes>: 表示定义一组测试类。
  • <class>: 表示定义某个测试类,name 指定要运行的测试类。

③右键运行testng.xml,执行结果如下:

 这是package1下的测试用例
这是package2下的测试用例
===============================================
SuiteTest
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0
  

从上面结果可以看出,指定类下的测试用例都已执行。

03

指定特定方法

指定特定方法即执行特定的测试用例。

①在package1下新建类TestDemo3,内容如下:

package package1;
import org.testng.annotations.Test;
@Test
public class TestDemo3 {
public void testDemo3(){
System.out.println(“这是package1下的testDemo3”);
}
}

②testng.xml内容修改如下:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "#34;>
<suite name="SuiteTest">
    <test name="test1">
        <classes>
            <class name="package1.TestDemo1">
                <methods>
                    < include  name="testDemo1"></include>
                </methods>
            </class>
        </classes>
    </test>
    <test name="test2">
        <classes>
            <class name="package2.TestDemo2">
                <methods>
                    <include name="testDemo2"></include>
                </methods>
            </class>
        </classes>
    </test>
</suite>
  

标签说明:

  • <suite>: 定义一个套件,一个xml文件只能有一个<suite>,name 用来定义测试套件的名称。
  • <test>: 表示定义了一个测试,name 定义测试的名称。
  • <classes>: 表示定义一组测试类。
  • <class>: 表示定义某个测试类,name 指定要运行的测试类。
  • <methods>:表示定义一组方法。
  • <include>:表示包含哪个方法,name指定要运行的测试用例。

③右键运行testng.xml,执行结果如下:

 
这是package1下的测试用例
这是package2下的测试用例
===============================================
SuiteTest
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
Process finished with exit code 0  

从上面结果可以看出, 指定的测试用例都被执行,未被指定的用例,如TestDemo3类下的用例未执行。

(完)


我是CoCo,计算机科学与技术专业,深漂大厂互联网民工(女),坐标深圳。5年工作经验,3年持续输出技术文。

ITester软件测试小栈(ID:ITestingA)号主,Boss直聘好文社区签约作者,腾讯云社区优质创作者。专注于软件测试技术和宝藏干货分享,每周准时更新原创技术文章,每月不定期赠送技术书籍,愿我们在更高处相逢。喜欢记得星标⭐我,每周及时获得最新推送,第三方转载请注明出处。


喜欢记得星标置顶,让我们一起守护成长

文章来源:智云一二三科技

文章标题:Java接口自动化之TestNG单元测试框架(二)

文章地址:https://www.zhihuclub.com/192755.shtml

关于作者: 智云科技

热门文章

网站地图