【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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

仙女肖消乐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值