如何使用 JMeter 使用 REST API Put 方法上传文件
Posted
技术标签:
【中文标题】如何使用 JMeter 使用 REST API Put 方法上传文件【英文标题】:How to upload a file using REST API Put method using JMeter 【发布时间】:2018-03-06 13:40:17 【问题描述】:我的查询上下文: 需要测试用于上传文件的 REST API Put 方法 使用的工具是JMeter。
我可以使用 POSTMAN 工具成功执行上述操作,但它在 JMeter 中不起作用。
这里是 JMeter 请求详细信息; 方法:放 路径:路径 标题 内容类型=多部分/表单数据;边界=----WebKitFormBoundary$随机
身体数据
------WebKitFormBoundary$random 内容处置:表单数据;名称="文件上传";文件名="C:\temp\abc.zip" 内容类型:application/octet-stream
------WebKitFormBoundary$random--
结果: "success":false,"errorMessages":"请求不包含附件" 响应码 = 400
感谢任何人可以提供帮助或提供使用 PUT 方法上传文件的更好方法。
谢谢, 乙
【问题讨论】:
如果我删除问题中给出的内容编码,则响应为 ""success":false,"errorMessages":"Request did not include an attachment"" Uploading file to rest API using JMeter的可能重复 @Kirti - 您建议的链接适用于 POST 方法,而我的查询适用于 PUT 方法。 是的,您需要将 Method 字段从 POST 更改为 PUT。但除此之外,这个问题是重复的,除非您提供更多详细信息,或者告诉我们您尝试该方法时什么不起作用。 【参考方案1】:使用 MIME 类型:application/zip
您的文件上传设置在 JMeter 中应如下所示:
【讨论】:
【参考方案2】:我的期望是您根本不会将尝试上传的文件与请求一起传递。如果您手动构建请求,则需要使用 __FileToString() 函数将文件正文添加到您的请求中。查看Testing REST API File Uploads in JMeter 文章了解更多详情。
另外,鉴于您的请求在 Postman 中有效,您应该能够使用 JMeter 的 HTTP(S) Test Script Recorder 捕获它
-
将要使用 Postman 上传的文件复制到 JMeter 安装的“bin”文件夹中
启动 JMeter 的代理服务器。请参阅JMeter Proxy Step by Step 指南以了解如何操作。
Start Postman using JMeter's HTTP(S) Test Script Recorder as a proxy 通过将--proxy-server
选项传递给它,例如:
C:\Users\your_user_name\AppData\Local\Postman\app-x.x.x\Postman.exe --proxy-server=localhost:8888
在 Postman 中执行您的请求
JMeter 会将捕获的请求存储在 Test Plan -> Thread Group -> Recording Controller 下
【讨论】:
以上是关于如何使用 JMeter 使用 REST API Put 方法上传文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jmeter 中控制 REST API 的流/序列?
Jmeter +Eclipse测试火币网REST API 实战案例(上)