public class parameterization {
@Test(dataProvider="getData")
public void demo(){
}
@DataProvider()
public Object[][]getData(){
String sheetName="CDM";
//Total rows in the sheet
Xls_Reader xls=new Xls_Reader("C://Selenium//Test_Data.xlsx");
int rows=xls.getRowCount(sheetName);
System.out.println(rows);
//Total column in the sheet
int cols=xls.getColumnCount(sheetName);
System.out.println(cols)
Object[][] data=new Object[rows-1][cols];
int count=0;
for(int i=2;i<=rows;i++){
for(int j=0;j<=cols;j++){
data[count][j]= xls.getCellData(sheetName, j, i);
System.out.println(data[count][j]);
}
count++;
}
return data;
}
}
I have written the above code to retrive data from excel sheet. I have refer the video and couldnt found the error. Could you please advise me.
Its returning only 1 row data.
Below attached the error log.
[TestNG] Running:
C:\Users\UX015804\AppData\Local\Temp\testng-eclipse-1720536426\testng-customsuite.xml
6
2
test1.0.8
tesco test test3
SKIPPED: demo
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 2
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:163)
at org.testng.internal.Parameters.handleParameters(Parameters.java:430)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1276)
at org.testng.internal.Invoker.createParameters(Invoker.java:991)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1081)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.privateRun(TestRunner.java:782)
at org.testng.TestRunner.run(TestRunner.java:632)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
at org.testng.SuiteRunner.run(SuiteRunner.java:268)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
at org.testng.TestNG.run(TestNG.java:1064)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at testcase.parameterization.getData(parameterization.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
at org.testng.internal.MethodInvocationHelper.invokeDataProvider(MethodInvocationHelper.java:137)
... 20 more
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 1
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 1
===============================================
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@244038d0: 18 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@2401f4c3: 93 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@762efe5d: 96 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@200a570f: 12 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@69222c14: 10 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 21 ms
I hav resolved the query.Could you please close this query
Error because of Column Count value. 2 column is available in excel and my code was retriving 3 column.