您可以将数据提供者设置为Object数组,并使用ArrayList>将您的参数设置为键值对。
@DataProvider
public Object[][] getTestData()
{
List<HashMap<String, String>> arrayMapList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> hashMapItems = new HashMap<String, String>();
//use a loop to fill in all the parameter name and value pairs
hashMapItems.put("parameterName1", "parameterValue");
hashMapItems.put("parameterName2", "parameterValue");
//--------------More put statements here------
//finally add hash map to the list
arrayMapList.add(hashMapItems);
//Iterate the array list and store each HashMap object in an object array. First dimension is the iterator value.
Object [][] hashMapObj = new Object [arrayMapList.size()][1];
for(int i=0; i<arrayMapList.size() ; i++) {
hashMapObj[i][0] = searchStrings.get(i);
}
return hashMapObj;
}
在阵列列表中的每个散列映射值,试验方法将其自己的一组参数来运行
@Test (dataProvider = "getTestData", enabled = true)
public void testDataRead(HashMap<String,String> hashMapValue)
{
System.out.println(hashMapValue.get(parameterNameKey)); //parameter 1
System.out.println(hashMapValue.get(parameterNameKey)); //parameter 2
}
如果你的方法需要10个参数,需要用10个参数来声明它。 – 2013-04-30 16:35:41
@CedricBeust如果我们在测试方法中声明了超过10个参数,那么代码看起来有些奇怪,我想知道是否有任何方法可以在测试方法的参数列表部分动态声明这些参数数量。 – 2013-05-02 04:31:30
然后将它们传递给对象。无论哪种方式,这是一个Java问题,而不是TestNG。 – 2013-05-02 18:19:01