我正在使用Selenium RC和TestNG做一些類似的關鍵字驅動的測試。爲了同樣的目的,我想從Excel表中讀取一些數據並使用它。在這裏我已經使用過TestNG.Data的數據提供者註釋。但我的問題是,我想從多個表中讀取數據,並在僅使用一個數據提供者的單一測試方法中使用它們。但我遇到了問題。可以幫助我這樣做。使用TestNG數據提供程序從多個表中獲取數據
感謝
這裏是我的代碼:
@DataProvider(name = "DP1")
public Object[][] createData1() throws Exception {
return new Object[][] {
{getTableData.getTableArray(" Xls File Path", "Sheet name", "Table1")},
{getTableData.getTableArray(" Xls File Path", "Sheet name", "Table2")}
};
}
這是我的測試方法:
@Test (dataProvider = ("DP1"))
public void testallpivot(String Command, String Target, String Value) throws Exception {
//Test Code here
}
但是這個代碼是顯示綁定異常的數組索引.. 有人請幫我.....
那麼這是怎麼getTableArr唉..看起來
public static Object[][] getTableArray(String xlFilePath, String sheetName, String tableName) throws Exception{
Object[][] tabArray;
Workbook workbook = Workbook.getWorkbook(new File(xlFilePath));
Sheet sheet = workbook.getSheet(sheetName);
int startRow,startCol, endRow, endCol,ci,cj;
Cell tableStart=sheet.findCell(tableName);
//System.out.println(tableName);
startRow=tableStart.getRow();
startCol=tableStart.getColumn();
Cell tableEnd= sheet.findCell(tableName, startCol+1,startRow+1, 100, 64000, false);
endRow=tableEnd.getRow();
endCol=tableEnd.getColumn();
System.out.println("startRow="+startRow+", endRow="+endRow+", " +
"startCol="+startCol+", endCol="+endCol);
tabArray=new String[endRow-startRow-1][endCol-startCol-1];
ci=0;
for (int i=startRow+1;i<endRow;i++,ci++){
cj=0;
for (int j=startCol+1;j<endCol;j++,cj++){
tabArray[ci][cj]=sheet.getCell(j,i).getContents();
}
}
return(tabArray);
}
這是堆棧跟蹤.....
java.lang.ArrayIndexOutOfBoundsException: 1
at org.testng.internal.Invoker.injectParameters(Invoker.java:1144)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1020)
atorg.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
at org.testng.TestRunner.runWorkers(TestRunner.java:953)
at org.testng.TestRunner.privateRun(TestRunner.java:633)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:316)
at org.testng.SuiteRunner.run(SuiteRunner.java:195)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:903)
at org.testng.TestNG.runSuitesLocally(TestNG.java:872)
at org.testng.TestNG.run(TestNG.java:780)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:75)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:127)
只要數組指向一個不存在的數組,就會發生數組索引超出限制......可能是,我們必須檢查for循環中的增量以解決此問題。 –