java写自动化的时,使用dataprovider参数化。

dataprovider使用的是二维数组,所以从Excel读取数据后需保存为二维数组。

这里不讲读取Excel,直接写一个二维数组

首先要声明某个方法为数据提供者,

@DataProvider(name = "ddt")
然后在调用的时候在方法上面加上
@Test(dataProvider = "ddt")
通过name这个名字来查找数据
public class TestDataProvider {
    @DataProvider(name = "ddt")
    public Object[][] data(){
        Object[][] data = new Object[2][3];
        data[0][0] = "aaa";
        data[0][1] = "bbb";
        data[0][2] = "fff";
        data[1][0] = "ccc";
        data[1][1] = "ddd";
        data[1][2] = "ggg";
        return data;
    @Test(dataProvider = "ddt")
    public void test(String one, String two, String three){
        System.out.println(one);
        System.out.println(two);
        System.out.println(three);
    }

输出:

aaa
bbb
fff

ccc
ddd
ggg
new Object[2][3]; 长度必须与跳用方法的参数个数相等,否则会报错

org.testng.internal.reflect.MethodMatcherException:
Data provider mismatch