如何将@pa​​rameter和@Data提供程序用于单个@Test方法

时间:2016-04-13 21:01:53

标签: selenium testng

我实际上需要使用来自TestNG.xml的@Parameter传递浏览器类型,并且测试需要使用数据进行参数化,例如:使用@DataProvider

的用户名和密码

由于我正在尝试实现并行多浏览器测试,我需要这个解决方案

@Test(dataProvider="data")
@Parameters("browser")
public void test1(String browser, String uname, String pass){
    System.out.println(browser+uname+pass);         

}   

@DataProvider
public Object[][] data(){       
    String[][] data = new String[2][2];
    data[0][0] = "user1";
    data[0][1] = "pass1";

    data[1][0] = "user2";
    data[1][1] = "pass2";       

    return data;

}

也欢迎任何替代解决方案。

1 个答案:

答案 0 :(得分:1)

由于dataprovider要求传递的列数应与使用dataprovider的函数的参数匹配,因此不能使用browser参数。您可以使用@BeforeTest注释创建另一个方法,并将浏览器值分配给类变量,并使用您需要的任何方法。