无法使用 FileInputStream 打开 Excel 文件

问题描述 投票:0回答:0

我尝试使用以下代码打开 excel 读取数据。

用户定义变量以获取 Groovy 中的驱动程序文件位置

${__groovy(new File(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() +File.separator+ ".." + File.separator + 'Data' + File.separator + "Driver.xlsx").getCanonicalPath(),)}

以上代码将返回 C:\DynamicData\Data\Driver.xlsx 并将其分配给 driverFile

import org.apache.jmeter.util.JMeterUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.jmeter.services.FileServer;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;


String  driverFile = vars.get("driverFile");
log.info("Driver Path:" + driverFile);
driverFile = driverFile.replace("\\","\\\\");
log.info("Updated Driver Path:" + driverFile);
FileInputStream fis = new FileInputStream(driverFile);

XSSFWorkbook workbook = new XSSFWorkbook(in);

日志

Driver Path:C:\DynamicData\Data\Driver.xlsx
Updated Driver Path:C:\\DynamicData\\Data\\Driver.xlsx

错误

ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: 
javax.script.ScriptException: Sourced file: inline evaluation of: ``import 
org.apache.jmeter.util.JMeterUtils; import org.apache.poi.xssf.usermodel. . . . '' : Typed 
variable declaration : Object constructor : at Line: 14 : in file: inline evaluation of: 
``import org.apache.jmeter.util.JMeterUtils; import org.apache.poi.xssf.usermodel. . . . '' : 
new FileInputStream ( driverFile ) 

Target exception: java.io.FileNotFoundException: C:\DynamicData\Data\Driver.xlsx     
(The filename, directory name, or volume label syntax is incorrect)
in inline evaluation of: ``import org.apache.jmeter.util.JMeterUtils; import 
org.apache.poi.xssf.usermodel. . . . '' at line number 14
javax.script.ScriptException: Sourced file: inline evaluation of: ``import 
org.apache.jmeter.util.JMeterUtils; import org.apache.poi.xssf.usermodel. . . . '' : Typed 
variable declaration : Object constructor : at Line: 14 : in file: inline evaluation of: 
``import org.apache.jmeter.util.JMeterUtils; import org.apache.poi.xssf.usermodel. . . . '' : 
new FileInputStream ( driverFile ) 

Target exception: java.io.FileNotFoundException: C:\DynamicData\Data\Driver.xlsx     
(The filename, directory name, or volume label syntax is incorrect)
in inline evaluation of: ``import org.apache.jmeter.util.JMeterUtils; import 
org.apache.poi.xssf.usermodel. . . . '' at line number 14

我尝试了很多方法,但都没有用。


如果我硬编码以下任何一个值...

C://DynamicData//Data//Driver.xlsx 
C:/DynamicData/Data/Driver.xlsx
C:\\DynamicData\\Data\\Driver.xlsx

...它工作正常。

请阐明这个问题。

java jmeter beanshell
© www.soinside.com 2019 - 2024. All rights reserved.