在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" />
答案 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。