我尝试使用以下代码打开 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
...它工作正常。
请阐明这个问题。