JMeter创建同时发送JSON与文件的HTTP请求失败问题
解决JMeter中同时发送JSON数据与文件时JSON部分丢失的问题
问题原因
JMeter默认的Files Upload面板无法为非文件类型的form-data字段添加filename属性,导致JSON部分的请求头不符合服务端要求,最终被忽略或丢失。
解决方案:手动构造Multipart请求体
配置HTTP请求
- 方法选择
POST,填写目标请求URL。 - 取消勾选"Use multipart/form-data for POST"(我们将手动构造完整请求体)。
- 方法选择
添加HTTP Header Manager
- 添加头信息:
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryooARNALDyzj0QAAl(边界值可自定义,但需与请求体中的边界完全一致)。
- 添加头信息:
在Body Data中构造完整请求体
将以下内容填入HTTP请求的"Body Data"区域,替换占位符为实际内容:------WebKitFormBoundaryooARNALDyzj0QAAl Content-Disposition: form-data; name="case"; filename="blob" Content-Type: application/json {"key1": "value1", "key2": "value2"} # 替换为你的实际JSON数据 ------WebKitFormBoundaryooARNALDyzj0QAAl Content-Disposition: form-data; name="files"; filename="Test.txt" Content-Type: text/plain ${__FileToString(/path/to/Test.txt,,)} # 替换为你的文件路径,用JMeter函数读取文件内容 ------WebKitFormBoundaryooARNALDyzj0QAAl--
注意事项
- 确保
Content-Type头中的边界值和请求体里的边界值完全一致,包括前后短横线的数量。 - JSON数据需保证格式正确,无语法错误。
- 使用
__FileToString函数时,文件路径需准确支持绝对路径或相对JMeter脚本的路径。
内容的提问来源于stack exchange,提问作者Agathiyan
相关产品推荐
相关产品推荐

