无法通过Jmeter发送文件

时间:2019-11-27 22:51:20

标签: file jmeter upload

我是JMeter的新用户,如果您能帮助我,我将非常高兴。我一直坚持用JMeter发送文件。

我正在尝试使用以下设置发送请求:

HTTP Request. Main

HTTP Request. Files Upload

HTTP Header Manager

这是请求: 标头:

Connection: keep-alive
Content-Type: multipart/form-data; boundary=Jmeter
auth-token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Length: 888859
Host: host_address
User-Agent: Apache-HttpClient/4.5.10 (Java/1.8.0_231)

身体:

PUT http: host/mobile/trainings/531/tasks/2709/solutions/33254

PUT data:
--RsttCxvdTM00rKCR1_vSX-3Q8lqQfe9w017Tb
Content-Disposition: form-data; name="file[]"; filename="answer_to_videoselfy.mp4"
Content-Type: video/mp4
Content-Transfer-Encoding: binary

<actual file content, not shown here>
--RsttCxvdTM00rKCR1_vSX-3Q8lqQfe9w017Tb--


[no cookies]

作为回应,我得到了:

{"ok":false,"message":"Cannot read property 'length' of undefined"}

我可以使用Postman上载此文件,这很有趣。我也尝试将邮递员curl导入JMeter,但仍然无法正常工作。

邮差的卷发:

curl -X PUT \
  http://HOST/api/v1.0/mobile/trainings/531/tasks/2709/solutions/33235 \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Content-Length: 888848' \
  -H 'Content-Type: application/json' \
  -H 'Host: HOST.com:8000' \
  -H 'Postman-Token: 88be-621bbfdc5f7d,ba4f2182-1083-4c37-92c0-906052b5a6ef' \
  -H 'User-Agent: PostmanRuntime/7.20.1' \
  -H 'auth-token: b36a8d4c5c7:69d5625e4f72f1171c1549e3f8cb8439' \
  -H 'cache-control: no-cache' \
  -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
  -F file=@/C:/Users/user/Documents/answer_to_videoselfy.mp4

有什么建议我应该在JMeter中做什么才能使它工作?

p.s。我试图将“ Content-Length:888848”添加到HTTP标头管理器中,但没有帮助

1 个答案:

答案 0 :(得分:0)

  1. HTTP Header Manager删除Content-Type标头
  2. 将“文件上传”部分中的“参数名称”更改为file
  3. answer_to_videoselfy.mp4文件复制到JMeter安装的“ bin”文件夹中,或将“文件路径”更改为C:/Users/user/Documents/answer_to_videoselfy.mp4

通常,鉴于您可以在Postman中执行请求,则应该可以使用JMeter记录请求

  1. 准备进行记录的JMeter,最简单的方法是使用JMeter Templates功能

    • 从JMeter的主菜单中选择File -> Templates -> Recording,然后单击“创建”
    • 打开HTTP(S) Test Script Recorder,然后单击“开始”

    enter image description here

  2. 准备邮递员进行记录

    • 从Postman主菜单中选择File - Settings - Proxy
    • 同时勾选HTTPHTTPS,并提供127.0.0.1作为“代理服务器”和8888作为代理端口:

    enter image description here

  3. answer_to_videoselfy.mp4文件复制到JMeter安装的“ bin”文件夹中

  4. 在邮递员中运行您的请求
  5. JMeter应该在HTTP Request下创建相关的Recording Controller采样器
  6. Parameterize or correlate这个auth_token,您应该可以参加