我正在尝试使用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}}属性的方法是什么?
答案 0 :(得分:2)
应该如此简单:
Use multipart/form-data for POST
提供文件的完整路径,filedata
为&#34;参数名称&#34;
有关如何在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)
原来我jmeter
在apt-get
上使用了ubuntu LTE
。那个版本非常陈旧,可能是马车。
从jmeter
网站下载的最新版本没有此问题,并正在正确报告filename
。