我正在JMeter中创建一个HTTP Request Sampler,以自动将文件上传到http服务。有没有办法将“使用请求发送文件”中的“文件路径”设置为从jmx文件位置开始的相对路径?
答案 0 :(得分:44)
是。 (这已在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
答案 1 :(得分:6)
我的版本为2.11,并且BeanShell脚本对我不起作用,使CSV文件相对,因此要创建一个简单的相对路径需要使用此~/filename.csv
。这意味着CSV文件与JMX文件存在于同一目录中。但我想你可以修改它,例如~/../results_dir/filename.csv
等。
答案 2 :(得分:2)
我在http://kisbigger.blogspot.com/2013/09/pointing-to-files-with-relative-paths.html找到了答案......
在与jmx相同的文件夹中使用filename.csv,并将〜/ filename.csv与JMeter 2.11放在一起,而新的JAVA不起作用