使用testNG和Data Providers参数化数据和对象名称

时间:2012-06-14 04:33:35

标签: testng testng-dataprovider

我正在尝试创建一个混合框架,我将从excel表中传递对象名称和相应的值。这就是我想要做的事情

FieldName   Type   Value1   Value2  Value3  
FName       Edit   John     Smith   Carla    
LName       Edit   Fellow   Carson  Black    
Submit      Link   Click    Click   Click    
  • 字段名称:包含用于标识对象的Xpath或ID
  • 类型:包含类型,如文本框或列表框等,以便我可以使用IF循环相应地处理每个TYPE对象。
  • 值1..3 ..:我想运行测试(对象)agianst的不同值。

如何使用数据提供程序进行此操作,因为理想情况下,当我使用不同的数据值时,前2列需要保持不变。此外,数据提供者似乎正在逐行读取数组。很抱歉,如果这是一个基本问题,我是testNG的新手,并且听过很棒的事情,想要查看它。

1 个答案:

答案 0 :(得分:0)

数据提供商会返回适用于您的任何数据,因此您只需考虑如何将此电子表格转换为测试方法可接受的对象。例如,如果您希望测试每列采用一个参数:

@Test(dataProvider = "dp")
public void f(String fieldName, String type, String value1, String value2, String value3) {
  // test
}

@DataProvider
public Object[][] dp() {
  // read the spreadsheet
  return new Object[][] {
    new Object[] { fieldName, type, value1, value2, value3 },  // row 1
    new Object[] { fieldName, type, value1, value2, value3 },  // row 2
  }
}