Java 使用Testng数据提供程序无法使用数据驱动
我正试图使用Java 使用Testng数据提供程序无法使用数据驱动,java,selenium-webdriver,testng,testng-dataprovider,Java,Selenium Webdriver,Testng,Testng Dataprovider,我正试图使用apachepoi和testng数据提供程序从excel读取数据,但testng正在跳过我的测试方法 下面是我得到的错误 SKIPPED: VerifyLoanDetails java.lang.RuntimeException: java.lang.NullPointerException Caused by: java.lang.NullPointerException at com.seleniumhybrid.utils.ExcelUtil.getTestdata(Exce
apachepoi
和testng
数据提供程序从excel读取数据,但testng
正在跳过我的测试方法
下面是我得到的错误
SKIPPED: VerifyLoanDetails
java.lang.RuntimeException: java.lang.NullPointerException
Caused by: java.lang.NullPointerException at com.seleniumhybrid.utils.ExcelUtil.getTestdata(ExcelUtil.java:62) at com.seleniumdata.zmartano.LoanDetails.getdata(LoanDetails.java:50)
下面是我从excel中读取数据的类
public class ExcelUtil{
static Workbook book;
static Sheet sheet;
public static String Testdata_sheet = Constants.path_TestData;
public static Object [][] getTestdata(String sheetname) {
FileInputStream file = null;
try{
file = new FileInputStream(Testdata_sheet);
}
catch(FileNotFoundException e) {
e.printStackTrace();
}
try {
book = WorkbookFactory.create(file);
}
catch(InvalidFormatException e ) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
sheet = book.getSheet(sheetname);
Object [][]data = new Object[sheet.getLastRowNum()][sheet.getRow(0).getLastCellNum()];
for (int i=0;i<sheet.getLastRowNum();i++) {
for(int k=0;k<sheet.getRow(0).getLastCellNum();k++) {
data[i][k]= sheet.getRow(i+1).getCell(k).toString();
}
}
return data;
}
}
在哪一行抛出异常?
getTestdata()
中是否有捕获到的异常?我建议您调试它,看看会发生什么。@Guy它在中显示错误是由以下原因引起的:com.seleniumhybrid.utils.ExcelUtil.getTestdata(ExcelUtil.java:62)com.seleniumdata.zmartano.LoandDetails.getdata(LoandDetails.java:50)中的java.lang.NullPointerException异常在getTestdata()中的某个地方。您需要调试这个方法,看看会发生什么,或者从那里删除所有的try-catch
块,看看问题出在哪里。我敢打赌,这些块掩盖了真正的问题,它们没有任何意义,没有这些数据测试就无法运行,处理异常也无济于事。TestNG没有任何问题。请检查您已编写的POI包装。poi包装器似乎没有向数据提供程序提供任何数据。检查excel中的变量初始化和值类型。@Amit您能看一下吗
public class LoanDetails extends Configreader{
WebDriver driver;
@BeforeTest
public void beforetest() throws Exception {
driver = Browser.GetBrowser();
}
@Test(dataProvider = "getdata")
public void VerifyLoanDetails(String username) throws Exception {
driver.findElement(By.xpath(pro.getProperty("account_xpath"))).click();
driver.findElement(By.xpath(pro.getProperty("username_id"))).sendKeys(username);
}
@DataProvider
public Object[][] getdata(){
Object data [][] = ExcelUtil.getTestdata("credentials");
return data;
}
}