**背景:**在JMeter组件之HTTP请求–上传文件和JMeter组件之HTTP请求–上传文件(二)中,介绍了如何使用JMeter调用上传文件接口进行文件上传。在这一过程中,看到网上有一些好的资料,这里转载过来扩散一下。
**转自:**https://blog.csdn.net/sunknew/article/details/82843691
起因
项目中开发的一个接口,接收 multipart/form-data
参数,且每个参数都必须指定 Content-Type。现在要使用 JMeter 做性能测试,Files Upload
标签页下的参数可以指定 Content-Type,但是 Parameters
标签页中的参数不可以(需要指定为 application/json
)。这就需要自定义 header 与 body 来实现相关请求的配置。
配置简述
header 配置
添加 HTTP Header Manager
,在 header 中定义 Content-Type 与 boundary,如图:
body 配置
勾掉 Use multipart/form-data for POST
复选框,编辑 Body Data
选项卡,示例:
1 --test_boundary
2 Content-Disposition: form-data; name="jsonMsg"
3 Content-Type: application/json
4
5 {"testKey":"key001"}
6 --test_boundary
7 Content-Disposition: form-data; name="file1"; filename="test-image.jpg"
8 Content-Type: image/jpeg
9
10 ${__FileToString(test-image.jpg,,)}
11 --test_boundary--
说明:
- 空行,换行,缩进等可参考 RFC1341
- 使用 __FileToString 获取上传的附件
请求信息:
参考
1.Testing REST API File Uploads in JMeter | BlazeMeter
2.Apache JMeter - User’s Manual: Functions and Variables