해시 맵이있는 데이터 공급자를 사용하여 Excel 시트에서 값을 가져 오려고합니다. 이제 Excel 시트에서 전체 행을 읽을 수 있습니다. Excel 시트에 3 열 "TestcaseId", "Testdata", "scriptname". 여기에 데이터 공급자의 테스트 메서드에 매개 변수로 스크립트 이름을 전달해야합니다.이 방법을 수행하는 데 도움을주십시오. 아래 그림은 hashmap을 사용하는 dataprovider 코드입니다.dataprovider에서 매개 변수를 전달하는 방법 테스트 메서드
@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 열 + 스크립트 이름을 전달 하시겠습니까? – CARE
데이터 공급자의 모든 3 열을 전달하지만 행 선택은 dataprovider에서 테스트 메서드로 전달한 scriptname을 기반으로 수행되며 scriptname 열은 3 열에 포함됩니다. 테스트 메서드는 scriptname 매개 변수 만 – Ak17
아래 질문에 대한 대답이있는 경우 – virusrocks