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

ITester软件测试小栈

共 2896字,需浏览 6分钟

 · 2021-02-19






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


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



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


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




01
指定特定包


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


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


②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,内容结构如下

"1.0" encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd" >
"SuiteTest">
    <test name="test1" >
        
            "package1">
        

    test>
    <test name="test2">
        
            "package2">
        

    test>


标签说明:

  • : 定义一个套件,一个xml文件只能有一个,name 用来定义测试套件的名称。

  • : 表示定义了一个测试,name 定义测试的名称。

  • : 表示定义包的测试类。

  • : 表示定义特定的包,执行包下的测试用例。


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

这是package1下的测试用例
这是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内容修改如下:

"1.0" encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd">
"SuiteTest">
    <test name="test1">
        
            "package1.TestDemo1">
        

    test>
    <test name="test2">
        
            "package2.TestDemo2">
        

    test>


标签说明:

  • : 定义一个套件,一个xml文件只能有一个,name 用来定义测试套件的名称。

  • : 表示定义了一个测试,name 定义测试的名称。

  • : 表示定义一组测试类。

  • : 表示定义某个测试类,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内容修改如下:

"1.0" encoding="UTF-8"?>
"https://testng.org/testng-1.0.dtd">
"SuiteTest">
    <test name="test1">
        
            "package1.TestDemo1">
                
                    "testDemo1">
                

            
        

    test>
    <test name="test2">
        
            "package2.TestDemo2">
                
                    "testDemo2">
                

            
        

    test>


标签说明:

  • : 定义一个套件,一个xml文件只能有一个,name 用来定义测试套件的名称。

  • : 表示定义了一个测试,name 定义测试的名称。

  • : 表示定义一组测试类。

  • : 表示定义某个测试类,name 指定要运行的测试类。

  • :表示定义一组方法。

  • :表示包含哪个方法,name指定要运行的测试用例。


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

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

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


(完)



ITester测试开发小栈(ID:TestDevZone),技术人茶余饭后的充电宝,每周上午11:30更新文章。从精进的软件测试到硬核的测试开发、从精细的前端开发到缜密的后端开发,前沿互联网资讯传送,宝藏IT资源分享,热门招聘发布。

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

浏览 36
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报