使用testNG和数据提供程序参数化数据和对象名称

使用testNG和数据提供程序参数化数据和对象名称,testng,testng-dataprovider,Testng,Testng Dataprovider,我正在尝试创建一个混合框架,在这个框架中,我将从excel工作表中传递对象名称和相应的值。这是我想做的 FieldName Type Value1 Value2 Value3 FName Edit John Smith Carla LName Edit Fellow Carson Black Submit Link Click Click Click 字段名:包含用于标识对象的

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

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

我如何使用数据提供程序来实现这一点,因为理想情况下,当我使用不同的数据值时,前两列需要保持不变。此外,数据提供程序似乎正在按行读取数组。很抱歉,如果这是一个基本问题,我是testNG新手,听说过一些非常好的东西,想看看。

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

@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
  }
}

谢谢你的回复。我希望它的工作方式是这样的`@Test(dataProvider=“dp”)public void f(String fieldName,String Type,String Value1)`根据上面在quesstion中提到的数组,将Fname标识为一个文本框并输入John。单击数据值1完成后。。执行数据值2,即FName-Smith、LName-Carson和Submit-Click,而字段名仍然是FName、LName和Submit。希望我说的很清楚:(.你可能说的很清楚,但是在注释中读代码有点困难:-)你能把你的问题通过电子邮件发送给testng用户列表吗?我们可以在那里继续讨论。