【发布时间】:2013-05-28 06:54:05
【问题描述】:
我正在 JMeter 中创建一个 HTTP 请求采样器,以自动将文件上传到 http 服务。有没有办法将“Send Files With the Request”中的“File Path”设置为jmx文件所在位置的相对路径?
【问题讨论】:
标签: jmeter
我正在 JMeter 中创建一个 HTTP 请求采样器,以自动将文件上传到 http 服务。有没有办法将“Send Files With the Request”中的“File Path”设置为jmx文件所在位置的相对路径?
【问题讨论】:
标签: jmeter
是的。 (这在 JMeter v2.9 中得到了证实)
您可以在文件名输入字段中使用以下 BeanShell 表达式:
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}<YOUR FILENAME HERE>
因此,如果您的文件“upload.jpg”与您的 JMX 测试文件位于同一文件夹中,则完整值将是
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}upload.jpg
为了让它更简洁,添加一个“用户定义的变量”配置元素,在其中将表达式的基础分配给变量,例如
SCRIPT_PATH = ${__BeanShell( ...etc
那么你的文件路径输入值会读起来更易读:
${SCRIPT_PATH}upload.jpg
【讨论】:
我在 2.11 版本下,BeanShell 脚本对我不起作用,要使 CSV 文件相对,因此要创建相对路径,您只需使用 ~/filename.csv。这意味着 CSV 文件与 JMX 文件存在于同一目录中。但我想您可以将其修改为此,例如 ~/../results_dir/filename.csv 等。
祝你好运。
【讨论】:
我在这里http://kisbigger.blogspot.com/2013/09/pointing-to-files-with-relative-paths.html 找到了答案...
在与 jmx 相同的文件夹中具有 filename.csv 并将 ~/filename.csv 与 JMeter 2.11 和较新的 JAVA 一起使用不起作用
【讨论】: