JMeter和内容处理

时间:2016-02-25 06:13:57

标签: jmeter

我正在尝试使用POST模拟JMeter进行压力测试。

“标准”POST(由浏览器或curl完成)如下所示:

POST /foo/boo HTTP/1.1
User-Agent: curl/7.35.0
Host: localhost:4000
Accept: */*
Content-Length: 8376
Content-Type: multipart/form-data; boundary=------------------------9dec6d453f478def

--------------------------9dec6d453f478def
Content-Disposition: form-data; name="filedata"; filename="plan.jmx"
Content-Type: application/octet-stream
....

jmeter之后的请求缺少filename部分的Content-Disposition属性:

POST /feedback/1.0/attack/ HTTP/1.1
Connection: keep-alive
Content-Length: 8331
Content-Type: multipart/form-data; boundary=qO2U87_27QtEGliQMv6ZGjIe6PnfEh1TX-RHAhJ
Host: localhost:4000
User-Agent: Apache-HttpClient/4.3.3 (java 1.5)

--qO2U87_27QtEGliQMv6ZGjIe6PnfEh1TX-RHAhJ
Content-Disposition: form-data; name="filedata"
....

我查看了XML,jmeter配置如下:

      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="/Users/alexey/Work/all-attacks.zip" elementType="HTTPFileArg">
            <stringProp name="File.path">plan.jmx</stringProp>
            <stringProp name="File.paramname">filedata</stringProp>
            <stringProp name="File.mimetype"></stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>

使用filename时指定Content-Disposition的{​​{1}}属性的方法是什么?

3 个答案:

答案 0 :(得分:2)

应该如此简单:

  1. 检查Use multipart/form-data for POST
  2. 提供文件的完整路径,filedata为&#34;参数名称&#34;

    • HTTP请求

      Multipart Post

    • 查看结果树监听器输出

      View Results Tree

  3. 有关如何在JMeter测试中模拟文件操作的全面信息,请参阅Performance testing: Upload and Download Scenarios with Apache JMeter指南。

答案 1 :(得分:1)

如果要在请求中添加任何标题,则可以通过将这些值传递给Http标题管理器来添加(它将是Http请求的子元素)

  

内容 - 处置:表单数据;命名=&#34; FILEDATA&#34 ;;文件名=&#34; plan.jmx&#34;

此处在标题管理器的名称字段中传递Content-Disposition,在值字段中传递休息(无需传递:)。它会在您的请求中添加此标头。

另外,从Jmeter执行此请求时,您是否得到了正确的响应?如果没有,请尝试将实现更改为Http Request的Java

答案 2 :(得分:0)

原来我jmeterapt-get上使用了ubuntu LTE。那个版本非常陈旧,可能是马车。

jmeter网站下载的最新版本没有此问题,并正在正确报告filename