JMeter 5.1使用POI读取Excel报InvocationTargetException问题求助
排查与解决方案
- 修正变量初始化错误
你当前代码的对象初始化存在类型不匹配问题:
// 错误写法:字符串不能赋值给XSSFWorkbook类型 XSSFWorkbook book = ""; // 替换为正确写法 XSSFWorkbook book = null;
- 修正JMeter变量取值方式
JSR223脚本中禁止直接使用${PATH}格式读取JMeter变量,这种写法会引发缓存、特殊字符转义问题,替换为API取值:
// 把原来的new File("${PATH}")替换为 new File(vars.get("PATH"))
替换脚本执行引擎
当前你使用的BeanShell引擎对Java类实例化兼容性差,建议切换为JMeter默认自带的Groovy引擎:在JSR223采样器的「语言」下拉框选择groovy即可,Groovy的性能和兼容性都远高于BeanShell。检查文件与路径有效性
- 确认
PATH变量对应的路径是绝对路径,且JMeter进程对该文件有读取权限 - 确认对应文件是
.xlsx格式的Excel文件,旧版.xls格式需使用HSSFWorkbook类处理 - 确认文件没有被WPS、Office等其他程序占用锁定
- 修正异常日志打印逻辑
当前你只打印了异常的message,看不到底层根因,修改catch块的日志输出:
catch (Exception e) { log.error("读取Excel文件失败", e); }
重新运行后查看jmeter.log文件,可以看到具体的底层报错(比如文件不存在、格式损坏等)。
- 检查依赖安装正确性
所有导入的jar包必须放在JMeter安装目录的lib/ext文件夹下,放置完成后必须重启JMeter才会生效。如果依然报错,建议升级POI版本到4.1.2,和JMeter 5.1的兼容性更好。
内容的提问来源于stack exchange,提问作者Royce
相关产品推荐
相关产品推荐

