TestNG·TestSuite测试套件

17 篇文章 0 订阅

引言

如何一次运行多个测试类,为了解决这个问题,引入了TestSuite测试套件的概念。

不同的测试类可以组装成一个具备测试相关功能的套件,这个套件就叫做TestSuite。比如TestSuite有测试购物基本流程的测试套件,有测试促销的套件,有具备冒烟功能的套件或者具备回归功能的测试套件。

至于如何一次运行多个测试类,如何运行TestSuite,请继续浏览下面正文。

正文

示例中的项目结构

1、分别创建两个测试类,TestNGClass1.java 和 TestNGClass2.java。

TestNGClass1.java   ↓


public class TestNGClass1 {
    @BeforeClass
    public void setUp(){
        System.out.println("beforeClass——>>>>>>来自TestNGClass1类");
    }
    @AfterClass
    public void tearDown(){
        System.out.println("afterClass——>>>>>>来自TestNGClass1类");
    }
    @BeforeMethod
    public void beforeMethod() {
        System.out.println("beforeMethod——>>>>>>来自TestNGClass1类>>>>beforeMethod");
    }
    @AfterMethod
    public void afterMethod() {
        System.out.println("afterMethod——>>>>>>来自TestNGClass1类>>>>afterMethod");
    }
    @Test
    public void testAdd(){
        System.out.println("这是TestNGClass1类中的第一个测试方法------------->>>>>>");
    }
    @Test
    public void testMethod(){
        System.out.println("这是TestNGClass1类中的第二个测试方法------------->>>>>>");
    }
}

TestNGClass2.java   ↓

public class TestNGClass2 {
    @BeforeClass
    public void setUp(){
        System.out.println("beforeClass——>>>>>>来自TestNGClass2类");
    }
    @AfterClass
    public void tearDown(){
        System.out.println("afterClass——>>>>>>来自TestNGClass2类");
    }
    @BeforeMethod
    public void beforeMethod() {
        System.out.println("beforeMethod——>>>>>>来自TestNGClass2类>>>>beforeMethod");
    }
    @AfterMethod
    public void afterMethod() {
        System.out.println("afterMethod——>>>>>>来自TestNGClass2类>>>>afterMethod");
    }
    @Test
    public void testAdd(){
        System.out.println("这是TestNGClass2类中的第一个测试方法------------->>>>>>");
    }
    @Test
    public void testMethod(){
        System.out.println("这是TestNGClass2类中的第二个测试方法------------->>>>>>");
    }
}

2、创建xml文件

之前的执行都是单个类,如何一次运行多个测试类。

项目根目录testng下,编辑xml文件,testsuitedemo.xml,xml文件名自定义。内容如下:

<suite name="TestSuite Demo">
    <test name="TestSuite Demo Test">
        <classes>
            <class name="testng.TestNGClass1"></class>
            <class name="testng.TestNGClass2"></class>
        </classes>
    </test>
</suite>

xml通过标签进行相应的配置。<suite>----<test>----<classes>----<class>,<class>属性name的值是“包名+待执行测试类名”

3、执行测试,通过testsuitedemo.xml执行

三人行,必有我师焉。欢迎交流。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TestNG是一个基于Java的测试框架,它支持测试驱动开发(TDD)和行为驱动开发(BDD)的测试方法。TestNG提供了丰富的功能,例如测试套件测试用例、测试方法、测试参数、测试依赖、测试分组、断言、数据提供者等。使用TestNG可以轻松地编写和运行接口自动化测试。 以下是使用TestNG进行接口自动化测试的步骤: 1. 安装TestNG插件:在Eclipse或IntelliJ IDEA中安装TestNG插件,以便创建和执行测试。 2. 创建测试类:创建一个Java类,并用@Test注解来标记测试方法。例如: ``` import org.testng.annotations.Test; public class MyTest { @Test public void testGet() { // 编写测试代码 } } ``` 3. 运行测试:使用TestNG插件在Eclipse或IntelliJ IDEA中运行测试。 4. 添加断言:在测试方法中添加断言,验证测试结果是否符合预期。例如: ``` import org.testng.Assert; import org.testng.annotations.Test; public class MyTest { @Test public void testGet() { // 编写测试代码 String response = api.get(url); Assert.assertEquals(response, expectedResponse); } } ``` 5. 添加数据提供者:使用@DataProvider注解来提供测试数据,让测试方法可以使用不同的数据进行测试。例如: ``` import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class MyTest { @DataProvider(name = "testData") public Object[][] testData() { return new Object[][] { {"param1", "expected1"}, {"param2", "expected2"} }; } @Test(dataProvider = "testData") public void testGet(String param, String expected) { // 编写测试代码,使用param和expected进行测试 String response = api.get(url + param); Assert.assertEquals(response, expected); } } ``` 6. 添加测试依赖:使用@DependsOnMethods注解来指定测试方法之间的依赖关系,使得测试方法按照特定的顺序执行。例如: ``` import org.testng.annotations.Test; public class MyTest { @Test public void testLogin() { // 编写测试代码,登录系统 } @Test(dependsOnMethods = "testLogin") public void testGetUserInfo() { // 编写测试代码,获取用户信息 } } ``` 7. 运行测试套件:使用testng.xml文件来配置和运行测试套件,包括指定测试类、测试方法、测试参数、测试报告等。例如: ``` <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="My Test Suite"> <test name="My Test"> <classes> <class name="com.example.MyTest"/> </classes> </test> </suite> ``` 以上是使用TestNG进行接口自动化测试的基本步骤,具体的测试场景和测试代码需要根据具体的项目需求进行编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值