我正在JMeter中创建一个HTTP请求采样器,以自动将文件上传到http服务.有没有办法将"使用请求发送文件"中的"文件路径"设置为从jmx文件位置的相对路径?
Pål*_*ver 46
是.(这在JMeter v2.9中得到了证实)
您可以在文件名输入字段中使用以下BeanShell表达式:
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}<YOUR FILENAME HERE>
Run Code Online (Sandbox Code Playgroud)
因此,如果您的文件" upload.jpg "与JMX测试文件位于同一文件夹中,则完整的值将是
${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}upload.jpg
Run Code Online (Sandbox Code Playgroud)
为了使它更清洁,添加一个"用户定义的变量"配置元素,您可以将表达式的基础分配给变量,例如
SCRIPT_PATH = ${__BeanShell( ...etc
然后您的文件路径输入值将读取更可读:
${SCRIPT_PATH}upload.jpg
我在版本2.11下,并且BeanShell脚本对我来说不起作用,使CSV文件相对,因此要使一个简单的相对路径需要使用它~/filename.csv.这意味着CSV文件与JMX文件存在于同一目录中.但我想你可以修改它,例如~/../results_dir/filename.csv等等.
祝好运.
小智 5
我在这里找到了答案http://kisbigger.blogspot.com/2013/09/pointing-to-files-with-relative-paths.html这是...
将 filename.csv 放在与 jmx 相同的文件夹中并将 ~/filename.csv 与 JMeter 2.11 和较新的 JAVA 一起放置不起作用