DataProvider的单个实例,用于链接到具有选择性数据读取的多个测试方法

时间:2014-01-10 09:50:53

标签: selenium testng

方案: 我已经构建了一个testNG类,它包含多个测试方法+一个excel读取方法。我希望根据excel表中的行数将所有测试方法都放到迭代中。 我还希望有选择地利用测试方法中的数据值。即 所有第1列值仅用于测试1 .. 所有col 2值仅在测试2中使用..所以..

我不认为这可以通过DataProvider的单个实例实现,这是我想要的。

任何帮助表示感谢。

仅供参考我在这里粘贴我的编程逻辑:

我的编程代码:         公共类样本{

@DataProvider(name = "dp")
public static Object[][] readExcel() {
    .
.
.
.
 return data;
}

@Test(dataProvider = "dp")    
public void test1(String a,String b) throws Exception {
System.out.println("test 1 OUTPUT IS "+ a);
    }

@Test(dataProvider = "dp")    
public void test2(String a,String b) throws Exception {
System.out.println("test 1 OUTPUT IS "+ b);
    }
}

{excel中的数据:     第1排:山姆米勒     第2行:彼得保罗

输出(目前即将发布):     测试1输出是山姆;     测试1输出是彼此;     测试2输出是米勒;     测试2 OUTPUT是保罗;

输出(必填):     测试1输出是山姆;     测试2输出是米勒;     测试1输出是彼此;     测试2输出是保罗; }

1 个答案:

答案 0 :(得分:1)

您的数据提供者可以将您的方法作为输入。您可以使用TC名称命名列标题,并且只能在数据提供者中获取列方法名称的值,例如

Courtesy TestNG documentation:“如果你声明你的@DataProvider将java.lang.reflect.Method作为第一个参数,TestNG将为第一个参数传递当前的测试方法。这在几个时特别有用。测试方法使用相同的@DataProvider,并且您希望它根据为其提供数据的测试方法返回不同的值。“