jmeter - 如何在 JMeter 中发送 multipart/form-data
问题描述
我想在 JMeter 中发送如下请求负载:
------WebKitFormBoundaryeBikRH0JCrgmtTvt
Content-Disposition: form-data; name="name"
test
------WebKitFormBoundaryeBikRH0JCrgmtTvt
Content-Disposition: form-data; name="description"
testing
------WebKitFormBoundaryeBikRH0JCrgmtTvt
Content-Disposition: form-data; name="configFile"; filename="my-project-1513669048551-73373e5a6b29.json"
Content-Type: application/json
------WebKitFormBoundaryeBikRH0JCrgmtTvt--
因此,我尝试在“参数”选项卡中添加名称和描述部分,并将表单数据作为内容类型,并在 HTTP 请求采样器的“文件上传”选项卡中添加文件。
这是我在执行后在请求正文中得到的:
POST data:
--t9u984dDyYVtn6R0e8-OiZQyWRv9gk1
Content-Disposition: form-data; name="name"
Content-Type: form-data; charset=US-ASCII
Content-Transfer-Encoding: 8bit
test
--t9u984dDyYVtn6R0e8-OiZQyWRv9gk1
Content-Disposition: form-data; name="description"
Content-Type: form-data; charset=US-ASCII
Content-Transfer-Encoding: 8bit
testing
--t9u984dDyYVtn6R0e8-OiZQyWRv9gk1
Content-Disposition: form-data; name="configFile"; filename="my-project-1513669048551-73373e5a6b29.json"
Content-Type: application/json
Content-Transfer-Encoding: binary
<actual file content, not shown here>
--t9u984dDyYVtn6R0e8-OiZQyWRv9gk1--
我想从请求名称和描述部分中删除这部分
Content-Type: form-data; charset=US-ASCII
Content-Transfer-Encoding: 8bit
这会导致失败并显示状态代码:415 需要帮助
解决方案
如果勾选框时JMeter 的HTTP 请求采样器生成的标准多部分 HTTP 请求对您不起作用,请注意您可以使用以下方法手动构建 HTTP 请求:Use multipart/form-data
- HTTP Header Manager设置包含边界的Content-Type标头
- __FileToString() 函数将 .json 文件的内容加载到请求正文中
检查在 JMeter 中测试 REST API 文件上传以获得更全面的解释和详细示例
推荐阅读
- html - 如何围绕图像和图标制作 div 页面(Bootstrap 4)
- elasticsearch - 如何在elasticsearch中搜索数组的多个字段
- javascript - JavaScript 代理在“get”上返回异步值
- java - 如何从片段内的视图持有者调用函数
- reactjs - 反应路由器重定向覆盖其他路由器组件
- python-3.x - Linux CentOS 8 - Pip3 安装 Mariadb
- wix - 通过我的 wix 安装程序安装 rabbitmq 并创建新用户和主机失败
- linear-programming - 最大化比率/百分比
- docker - echo 告诉我我的环境变量已定义,但 docker-compose 告诉我“未设置变量”。如何将它们传递给 docker-compose?
- google-tag-manager - Google 跟踪代码管理器标记触发但未显示在页面上