我正在 JMeter 中创建一个 HTTP 请求采样器,以自动将文件上传到 http 服务。有没有办法将“使用请求发送文件”中的“文件路径”设置为来自 jmx 文件位置的相对路径?
3 回答
是的。(这在 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这是...
- 第 1 步:为您的项目创建一个用户定义的变量 Config 元素。
- 第 2 步:添加新变量 CONFIG_PATH
- 第 3 步:在值列中放置以下代码: ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}
- 第 4 步:在任意位置使用变量名,例如 ${CONFIG_PATH}\config.xml
将 filename.csv 放在与 jmx 相同的文件夹中,并将 ~/filename.csv 与 JMeter 2.11 和较新的 JAVA 放在一起不起作用