当前位置: 首页 > 知识库问答 >
问题:

通过“可执行JAR”文件运行selenium测试时,无法从xls获取测试数据

王宏深
2023-03-14

我正在通过使用以下代码创建可执行的jar文件来运行selenium脚本。

public class ExecutableRar {

public static void main(String[] args) {
    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng = new TestNG();
    List<String> testFilesList = new ArrayList<String>();
    testFilesList.add("C:\\path to testng.xml file\\testng.xml");
    testng.setTestSuites(testFilesList);
    testng.setUseDefaultListeners(false);
    testng.addListener(tla); 
    testng.run();
   }
}

另外,为了执行测试用例,我使用testdata.xls。每当我执行任何测试时,TestData.xls都是必需的。

下面是我的项目的层次结构:[请点击图片exapnd]。

在使用jar文件执行测试的同时,我需要做哪些更改,以便我的脚本将从test data.xls中获取测试数据?

更新:-写完这段代码后添加截图

public String getCellDataWithRowColAndSheetName(int col, int row, String sheetName) throws BiffException, IOException {
    InputStream inputStream = this.getClass().getResourceAsStream("TestData/testdata.xls");
    if (inputStream == null) {
        throw new IllegalStateException("Unable to read excel spreadsheet from the jar");
    }
    Workbook workbook = Workbook.getWorkbook(inputStream);
    Sheet sheet = workbook.getSheet(sheetName);
    Cell cell = sheet.getCell(col, row);
    return cell.getContents();
}

共有1个答案

贺高飞
2023-03-14

这取决于您正在使用什么来读取Excel电子表格。

例如,如果您使用的是JXL,那么读取excel电子表格的代码如下所示

InputStream inputStream = this.getClass().getResourceAsStream("TestData/testdata.xls");
if (inputStream == null) {
    throw new IllegalStateException("Unable to read excel spreadsheet from the jar");
}
jxl.Workbook workbook =  jxl.Workbook.getWorkbook(inputStream);

您要做的唯一更改是将代码从读取文件改为从类路径读取InputStream,然后将其输入excel读取机制。

 类似资料:
  • 我有一些Spring测试,这些测试可以加速应用程序上下文并测试一些服务。我能够使用Maven并通过IDE运行这些测试。现在我需要在另一台无法访问Maven的机器上运行这些测试。我的想法是创建一个测试jar并通过命令行运行它们。 所以我创建了一个自定义Runner,它调用我需要的测试类,这些测试将启动Spring Application上下文并测试一些服务。 以下是示例代码: 我的自定义跑步者: 上

  • 我有一个项目与cucumber和maven也我使用JUnit。 我能够从Eclipse成功地运行和构建我的项目。 现在,我想在另一个没有安装eclipse或cucumber的系统中从命令行运行测试。我有一个想法,我们可以从JAR创建一个JAR,我们可以通过java cli命令运行测试。 我已经在类路径中添加了JUNIT Jar。 我以两种方式生成jar, 1)使用->project->export

  • 问题内容: 我遇到了NullPointerException问题。我已尽力而为,但无法解决此问题。我正在为我的项目实现POM模型(selenium)。 这一页: 测试类: 错误日志: 类: 有什么帮助吗? 问题答案: 您需要先初始化。如我所见,您正在创建但未初始化的引用,请尝试如下操作:- 注意 :-如果要初始化,则需要先下载chromedriver并设置系统属性,然后再将驱动程序初始化为:- 所

  • 步骤1:在此基础上,我使用构建了一个包含所有依赖项的独立jar。 pom.xml 将方法添加到runner类,并根据this、this和this传递cmdline arg。 如何通过cmdline args指向JAR中的目录?

  • java.lang.NullPointerException(位于org.openqa.selenium.support.pageFactor.defaultelementLocator.java:69)(位于org.openqa.selenium.support.pageFactor.internal.locatingelementandler.invoke(locatingelementand

  • 我试图使用Selenium/Java为我的自动化脚本运行maven项目。但是,当我执行mvn test命令时,测试并没有运行。请让我知道当我尝试运行maven项目时,cucumber测试没有被执行的问题是什么。 下面是我的pom.xml文件