【问题标题】:jmeter.functions.FileToString not finding file locationjmeter.functions.FileToString 找不到文件位置
【发布时间】:2017-10-23 16:51:06
【问题描述】:

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

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

CSV 数据

designO1015643320
.
.
designO1077673985
designO1088516727

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

来自 .jmx.log 的错误:

警告 - 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 响应消息:序列结束" tn="Design_APIs 1-1" dt="text" by="1822" ng="1" na="1"/>

【问题讨论】:

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

标签: json maven jmeter load-testing


【解决方案1】:

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

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

Maven在不同的默认路径中搜索文件src/test/jmeter目录

guide:

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

你可以找到这条路径dynamically

【讨论】:

    【解决方案2】:

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

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

    更多详情请见JavaDoc on FileServer class

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      相关资源
      最近更新 更多