参考文档:
Jmeter接口测试-文件上传(全网最详细的教程)_jmeter 文件上传-CSDN博客
1、首先通过fiddler抓取文件上传接口,在Raw的tab页中查看默认请求头以及请求参数 如图所示
2、在jmeter中导入抓取的接口,首先需要配置token传递(有教程不赘述),然后配置默认消息请求头,因为该接口与其它接口的默认请求头不一致最简单的方式就是每个接口配置一个请求头,该上传文件请求头配置如下
如步骤1获取到的接口请求头所示,直接将请求头的信息复制过来即可,但是需要修改获取新的token,以及删除如下图所示的两个请求头,Content-Disposition只需输入form-data; name="file"即可,最终配置如上图所示。
3、接口的默认请求消息头配置完成后m,需要对接口进行配置;首先需要勾选对POST使用multipart/form-data;其次查看fiddler的接口消息头中是否有其他参数如果有则添加在对应的参数/消息体数据中,没有的话就只需要配置文件上传tab,我这边是没有的。只需要配置文件文件上传即可。
4、在文件上传的接口界面,点击文件上传tab,点击浏览在本地选择需要上传的文件,输入参数名以及MIME类型;
file和MIME类型对应关系如下图所示:
参数名称根据fillder中的Content-Disposition: form-data; name="file"; 填写file;
MIME类型根据fiddler中的Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document;填写 application/vnd.openxmlformats-officedocument.wordprocessingml.document;
配置完成如图所示:
file和MIME类型对应关系如下图所示
5、上述步骤完成后就可以实现接口上传文件的效果了,这时可以通过添加其他组件来实现接口响应结果的参数传递;我这边一般是用正则表达式提取器,之前token传递教程中有使用,这次就换个组件使用Json提取器。
6、在对应接口下添加JSON提取器,添加步骤如下图所示。
7、添加JSON提前器之后,需要根据该接口的响应数据以及所需要提取的参数对该组件进行配置,接口响应参数如下(使用JSON格式显示);
我这边需要提取接口结果中的createTime;imageUrl;id
8、查看接口响应数据以及找到需要提取的参数后,则需要配置JSON提取器组件,
8.1:第一行参数名,需要几个参数则写几个参数,直接用;隔开;如:imageUrl;createTime;id
8.2:第二行提取表达式,有几个参数则需要写几个对应表达式;如:$.data.imageUrl;$.data.createTime;$.data.id ;$.是固定格式;data代表接口响应数据中的大括号的参数(如步骤7的图中所示);imageUrl则是接口响应数据中所需要抓取的参数值。
8.3:第三行默认取值范围,都取找到的第一个值 如:1;1;1
8.4:最后一行则表示默认值,抓取不到数据显示的值,如:error1;error2;error3
8.5:有几个参数,下方对应必须有几个。如上方,有3个参数名(imageUrl;createTime;id),下方一一对应,每行有3个
9、获取到上传文件响应数据的参数值后,可以将参数传递给与上传文件相关联的添加数据接口。
在对应的参数上填写:${id} ${imageUrl} ${createTime};如下图所示
10、在步骤8配置完JSON提取器后可以在该接口下再添加一个JSON断言来判断是否提取到对应的参数值。
11、在JSON断言中配置,根据上传文件接口的响应数据
"code": 200,来填写,AssertJSON Path exists(JSON断言路径)输入$.code;在Expected Value:输入200
至此上传文件接口以及相关的参数值传递就配置完成了。
下面链接是接口上传图片的相关教程,过程应该是上传文件差不多。
JMeter接口测试之文件上传!_jmeter图片上传(2),2024年最新被大佬问到自闭_jmeter 文件上传-CSDN博客