TestNG参数化之@DataProvider传参

@parameters适合传递简单少量参数,复杂参数一般使用@DataProvider传递
@DataProvider语法:

@DataProvider(name = "dataproviderName")
public Object[][] createData([Method m]) {
   return Array;
}
@Test(dataprovider="dataproviderName"[, dataProviderClass = dataProviderClassName.class]) 
public void test(parameters...){ }

1.简单返回Array
test.java

//This method will provide data to any test method that declares that its Data Provider
//is named "test1"
@DataProvider(name = "test1")
public Object[][] createData1() {
 return new Object[][] {
   { "Cedric", new Integer(36) },
   { "Anne", new Integer(37)},
 };
}
//This test method declares that its data should be supplied by the Data Provider
//named "test1"
@Test(dataProvider = "test1")
public void verifyData1(String n1, Integer n2) {
 System.out.println(n1 + ": " + n2);
}

2.独立DataProvider类
StaticProvider.java——提供数据的类

public class StaticProvider {
  @DataProvider(name = "create")
  public static Object[][] createData() {
    return new Object[][] {
   { "Cedric", new Integer(36) },
   { "Anne", new Integer(37)},
 };
}

test.java

//This test method declares that its data should be supplied by the Data Provider
//named "test1"
@Test(dataProvider = "create", dataProviderClass = StaticProvider.class)
public void verifyData1(String n1, Integer n2) {
 System.out.println(n1 + " " + n2);
}

3.含参数的DataProvider类_参数为调用dataprovider的方法名
StaticProvider.java

public class StaticProvider {
      @DataProvider(name = "create")
      public static Object[][] createData(Method m) {
        return getData(m.getName());
      }
          
      public static Object[][] getData(String methodName){
            .........
            ...........
            return Object[][];
      }      
}

test.java

//This test method declares that its data should be supplied by the DataProvider
//named "test1"
@Test(dataProvider = "create", dataProviderClass = StaticProvider.class)
public void test1(String n1, Integer n2) {
 System.out.println(n1 + " " + n2);
}

注意:dataProvider只能对使用@Test的方法使用

文章转载于https://www.cnblogs.com/sylvia-liu/p/4632332.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值