JMeter上传文件,其中包含jmx文件的相对路径

时间:2013-05-28 06:54:05

标签: jmeter

我正在JMeter中创建一个HTTP Request Sampler,以自动将文件上传到http服务。有没有办法将“使用请求发送文件”中的“文件路径”设置为从jmx文件位置开始的相对路径?

3 个答案:

答案 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找到了答案......

  • 步骤1:为您的用户创建一个用户定义的变量Config元素 项目。
  • 第2步:添加新变量CONFIG_PATH
  • 第3步:在价值中 列放置此代码:$ {__ BeanShell(导入 org.apache.jmeter.services.FileServer; FileServer.getFileServer()。getBaseDir();)}
  • 第4步:使用变量 在任何地方命名,如$ {CONFIG_PATH} \ config.xml

在与jmx相同的文件夹中使用filename.csv,并将〜/ filename.csv与JMeter 2.11放在一起,而新的JAVA不起作用