2017-10-20 2 views
1

在JMeter的我传递多个JSON输入作为主体,变量名称被定义为JSON_FILE和从CSV数据配置来jmeter.functions.FileToString没有找到文件位置

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

CSV数据

designO1015643320 
. 
. 
designO1077673985 
designO1088516727 

从Jmeter运行负载测试UI工作正常,但作为运行mvn项目提供有关FileNotFoundException错误,即使.csv文件和.json文件是我n的.jmx从.jmx.log文件

错误相同的文件夹:

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

响应:

httpSample t =“4”lt =“0”ts =“1508530091457”s =“false”lb =“CreateDesign_PUT”rc =“非HTTP响应代码:org.apache.jorphan.util.JMeterStopThreadException”rm =“非HTTP响应消息:序列结束 “由= ”1822“ NG = ”1“ NA = ”1“/>

+1

由于您未指定文件的路径,因此它正在当前目录中查找它。当你在本地运行并使用Maven时,当前目录很可能不同,因此它找不到该文件。 您必须以某种方式传递路径,或者使其在两种情况下都具有通用性(例如绝对路径或PATH上的路径) –

回答

0

JMeter的GUI默认的相对路径是” TN = ”Design_APIs 1-1“ DT =” 文本bin文件夹

相对路径相对于当前工作目录(默认为bin /目录)被解析。在不同的默认路径

Maven的搜索文件src/test/jmeter目录

guide

在src /测试/ JMeter的目录

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

,你可以找到这个路径dynamically

0

听说Groovy is a new black所以我会建议与__groovy() function,相对于Maven的插件当前工作目录的文件路径动态获取Groovy的等同替换您__FileToString()函数将如:

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

请参阅JavaDoc on FileServer class了解更多详情。