【发布时间】:2013-05-19 10:00:29
【问题描述】:
我是 Java 和编程的新手。我有一堆代码从 excel 中读取数据并将其用于运行一些测试用例(selenium webdriver)。 下面的代码显示了从 excel 中读取数据,在串行运行我的测试用例时效果很好(一个接一个)。
public String getData(String SheetName, String DataSet, String ColumnName) throws JXLException,IOException {
Workbook workbook=null;
workbook = Workbook.getWorkbook(new File(".\\data\\TestData.xls"));
Sheet sheet = workbook.getSheet(SheetName);
int iRow,iCol=0,iNumCol,p;
String sData="";
Cell sTestData=sheet.findCell(DataSet);
iNumCol=sheet.getColumns();
iRow=sTestData.getRow();
for (p=0;p<iNumCol;p++)
{
String sCol=sheet.getCell(p,0).getContents();
if (sCol.matches(ColumnName))
{
iCol=p;
bColumnFound=true;
}
}
sData = sheet.getCell(iCol,iRow).getContents();
return sData;
}
@Test(testName = "list_News")
@Parameters("format")
public void list_News(String format) throws Exception {
String sgetname = "", sPassword = "", sUrl = "";
sgetname = cm.getData("list_News", "list_News", "idname"); >>> THIS STEP I am getting NULL POINTER EXCEPTION
sPassword = cm.getData("list_News", "list_News", "Password");
sUrl = cm.getData("list_News", "list_News", "URL");
我的问题是 - 当我尝试同时运行多个案例时,我得到空指针异常,如下所示。 它在每种情况下都失败的地方在于读取 excel 文件的第一行。我怀疑这可能是在读取 excel 文件时引起的一些锁定。 我该如何解决这个问题……我需要实现多线程吗?我该怎么做?
java.lang.NullPointerException 在 common.commonMethods.getData(commonMethods.java:241) 在 api.case.list.Listnews.test_paperid_Pos_014(news_uth.java:282) 在 java.util.concurrent.FutureTask$Sync.innerRun(未知来源) 在 java.util.concurrent.FutureTask.run(未知来源) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(未知来源) 在 java.lang.Thread.run(未知来源)
提前致谢 干杯
【问题讨论】:
-
您在
commonMethods.java:241有一个NullPointerException。因为我们在您的示例中没有行号,您能否发布第 241 行是什么? -
第 241 行有这个代码 sgetname = pm.getData("list_news", "list_news_testcase1", "idname"); pm.getData 是我上面贴的阅读excel方法..
-
您发布的方法
getData是发生异常的方法吗?我在您发布的代码示例中没有看到该行。需要查看完整代码以更好地了解NPE之前发生的情况。 -
我已经提到了上面的代码请寻找这一行。 >>> 这一步我在这一点上得到 NULL POINTER EXCEPTION