前戏
文件上传算是一个简单的功能,但是我测文件上传的接口时花费了5-6个小时的时间,里面是各种各样的坑。我找的接口是一个ajax上传上去,在点击保存后把ajax的返回结果传给保存的接口,自己用mac写完觉得没有一点问题,但保存的接口jmeter就是报错,用postman试了一下,一下就成功了。研究了一小时也看不出jmeter写的有问题,无奈之下只有到群里去问问有知识的人。别人看也没有什么问题,我把我的jmx文件发给别人,别人一下就成功了,只改了文件路径,最后终于确定,我写的代码没问题,是mac版的jmeter有问题,然后我使用我wins的试了一下,也成功了,辣鸡jmeter。
来看下我是怎么做的
浏览器抓包查看接口和参数
我上传文件后ajax会调用UploadFile接口,然后点击确定会调用Save接口,这样一个完整的上传文件接口就完成了。
我们先来看看UploadFile接口的请求头,参数和响应
在来看看Save接口的请求头,参数和响应
最后我们还需要看下获取这个列表的响应,之前没有看,接口是成功了,但是在页面上点击编辑的时候,前端会报错,汗。。。
通过抓包我们获取到了我们所需要的数据,然后来看下jmeter里怎么来实现
Jmeter实现上传文件接口
组件如下
现在来一个一个看里面都是什么
HTTP Cookie Manager登录成功存放Cookie的,其他接口就不需要写了
HTTP Header Manager 存放请求头信息,下面的登录接口,UploadFile接口,Save接口,获取数据接口都可以用到
这里只放了User-Agent
登录接口
登录接口没什么好说的,主要用于获取Cookie,供下面的接口使用
UploadFile接口
JSON Extractor接口,用来提取接口的返回值tempPath
Save接口和下面的HTTP Header Manager,点击保存将所有数据提交到服务器
最后的几个没什么可说的