jmeter.functions.FileToString找不到文件位置

时间:2017-10-20 20:18:40

标签: json maven jmeter load-testing

在JMeter中,我将多个JSON输入作为正文传递,变量名称定义为JSON_FILE并来自CSV数据配置

${__FileToString(${__eval(${JSON_FILE})}.json,,)}

CSV数据

designO1015643320
.
.
designO1077673985
designO1088516727

从Jmeter UI 运行负载测试工作正常,但是作为 mvn 项目运行会出现关于FileNotFoundException的错误,即使.csv文件和.json文件是与.jmx文件相同的文件夹

来自.jmx.log的错误:

  

WARN - jmeter.functions.FileToString:无法读取文件:designO1015643320.json文件' designO1015643320.json'不存在java.io.FileNotFoundException:File' designO1015643320.json'不存在

.jtl中的响应:

  

httpSample t =" 4" LT =" 0" TS =" 1508530091457" S ="假" LB =" CreateDesign_PUT" rc ="非HTTP响应代码:org.apache.jorphan.util.JMeterStopThreadException" rm ="非HTTP响应消息:序列结束" tn =" Design_APIs 1-1" DT ="文本"通过=" 1822" NG =" 1" NA =" 1" />

2 个答案:

答案 0 :(得分:0)

JMeter GUI默认相对路径是bin文件夹

  

相对路径相对于当前工作目录(默认为bin /目录)进行解析。

Maven在文件JavaFileObject目录

的不同默认路径中搜索

请参阅guide

  

在src / test / jmeter目录中。运行项目时,JMeter Maven插件会搜索要在此目录中运行的测试。

您可以找到此路径dynamically

答案 1 :(得分:0)

我听说Groovy is a new black所以我建议用__groovy() function替换你的__FileToString()函数,Groovy相当于动态获取相对于Maven的插件当前工作目录的文件路径,如下所示: p>

${__groovy(new File(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() + System.getProperty('file.separator') + vars.get('JSON_FILE') + '.json').text,)}

有关详细信息,请参阅JavaDoc on FileServer class