【发布时间】:2016-07-18 18:18:26
【问题描述】:
我正在尝试使用带有哈希映射的数据提供程序从 excel 表中获取值。现在我可以从 excel 表中读取整行。excel 表有 3 列“TestcaseId”、“Testdata”、“scriptname” .这里我需要将脚本名称作为参数传递给数据提供者的测试方法。请帮助我如何实现这一点。下面是使用hashmap的数据提供者代码
@DataProvider(name="cbndataprovider")
public static Iterator<Object[]> cbntestdata() throws IOException
{
List <Object[]> alist = new ArrayList<Object[]>();
OriginalExcelRW Excel = new OriginalExcelRW("F:\\anand_acer\\selenium\\cbnindia1\\Test_Data_Sheet.xlsx");
XSSFSheet s = Excel.Setsheet("Test_Data");
int rowcount = s.getLastRowNum();
for(int i =1;i<=rowcount;i++)
{
Object[] obj = new Object[1];
Map<String,String>hm=new HashMap<String,String>();
hm.put(Excel.Readvalue(s, 0, 0), Excel.Readvalue(s, i, 0));
hm.put(Excel.Readvalue(s, 0, 1), Excel.Readvalue(s, i, 1));
hm.put(Excel.Readvalue(s, 0, 2), Excel.Readvalue(s, i, 2));
hm.put(Excel.Readvalue(s, 0, 3), Excel.Readvalue(s, i, 3));
System.out.println(Excel.Readvalue(s, 0, 0)+"...."+ Excel.Readvalue(s, i, 0));
System.out.println(Excel.Readvalue(s, 0, 1)+"...."+ Excel.Readvalue(s, i, 1));
System.out.println(Excel.Readvalue(s, 0, 2)+"...."+ Excel.Readvalue(s, i, 2));
System.out.println(Excel.Readvalue(s, 0, 3)+"...."+ Excel.Readvalue(s, i, 3));
obj[0]=hm;
alist.add(obj);
}
return alist.iterator();
}
}
【问题讨论】:
-
你指的是什么脚本名称?您想将 3 列 + 脚本名称传递给您的测试方法吗?
-
我将从数据提供者传递所有 3 列,但行选择将基于我从数据提供者传递给测试方法的脚本名完成,并且脚本名列包含在 3列。测试方法应该只接受 scriptname 参数。
-
如果以下答案回答了您的问题,请将问题标记为已回答
标签: java selenium-webdriver hashmap testng-dataprovider