【TestNG学习(六)参数化测试 (DataProvider)】

1、参数化测试

fiveTest类获取fiveTest.xml文件中定于变量
package com.lsc;

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class fiveTest {
    @Test
    @Parameters({"one","two", "three", "four"})
    public void parameter(String one,int two,String three,String four){
        System.out.println();
        System.out.println("111 = "+ one+";  222 = "+two);
        System.out.println("333 = "+ three+";  444 = "+four);
    }
}
<?xml version="1.0" encoding="utf-8" ?>
<suite name = "parameter">
    <test name = "para">
        <parameter name = "one" value="111111111111"/>
        <parameter name = "two" value="2222"/>
        <parameter name = "three" value="333333333333"/>
        <parameter name = "four" value="4444444444444"/>
        <classes>
            <class name = "com.lsc.fiveTest"/>
        </classes>
    </test>
</suite>

执行结果:
在这里插入图片描述

2、参数化测试 (DataProvider)

package com.lsc;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.lang.reflect.Method;

public class fiveTest3 {
    @Test(dataProvider = "data")
    public void testProviderData(String name,int age){
        System.out.println("name = "+ name +";  age = "+age);
    }

    @DataProvider(name = "data")
    public Object[][] providerData(){
        Object[][] para = new Object[][]{
                {"11111",11},
                {"22222",22},
                {"33333",33}
        };
        return para;
    }

    @Test(dataProvider = "methodData")
    public void test1(String name,int age){
        System.out.println("test1方法 name = "+name+"; age = "+age);
    }

    @Test(dataProvider = "methodData")
    public void test2(String name,int age){
        System.out.println("test2方法 name = "+name+"; age = "+age);
    }
    @DataProvider(name = "methodData")
    public Object[][] methodDataTest(Method method){
        Object[][] result = null;
        if (method.getName().equals("test1")){
            result = new Object[][]{
                    {"44444",44},
                    {"55555",55},
                    {"66666",66}
            };
        }else if (method.getName().equals("test2")){
            result = new Object[][]{
                    {"77777",77},
                    {"88888",88},
                    {"99999",99}
            };
        }
        return result;
    }
}

public void testProviderData执行结果,输出Object[][] para

在这里插入图片描述

public void test1执行结果,通过if (method.getName().equals("test1"))判断输出@DataProvider(name = "methodData")

在这里插入图片描述

public void test2执行结果,通过if (method.getName().equals("test2"))判断输出@DataProvider(name = "methodData")

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
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进行接口自动化测试的基本步骤,具体的测试场景和测试代码需要根据具体的项目需求进行编写。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙女肖消乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值