基于Locust框架进行文件上传下载性能测试
每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试,领取资料可加:magetest
码同学抖音号:小码哥聊软件测试
在很多业务场景中,需要针对文件上传和下载进行测试。当你要测试一个业务时,必须要先理解这个业务的本质。我们先来看下上传和下载的本质。
文件上传过程
1、在浏览器上选择本地文件,点击上传
2、浏览器读取本地文件,将文件内容放到HTTP请求的body中,然后在HTTP请求头中,标记请求数据类型:
Content-type:multipart/form-data,
以post形式提交至服务端。
3、服务端接受到请求数据后,在服务器上新建一个文件,将body中的数据写入到文件,一次文件上传处理完成。
文件下载过程
1、在浏览器上点击下载按钮,向服务端发起一个HTTP get类型请求
2、服务端接收到请求后,将对应文件内容读取出来,写入到HTTP响应中,并在响应头里标记Content- Disposition: attachment; filename=xxx
3、浏览器接受到响应后,根据标记识别出本次是下载请求,根据标记中的filename在本地创建一个同名文件,然后将响应中的数据写入到文件里,一次下载文件处理完成。
从上传和下载的描述中可以看出,所谓的文件上传和下载,其实都是将文件内容附加到HTTP请求里进行传输。
使用Locust测试文件上传下载
先来看下某项目上传和下载的接口文档
文件上传脚本编写
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:magetest
执行脚本,在本地浏览器中请求http://localhost:8089/,输入并发用户,和ip端口,点击开始执行
可以在Pycharm的控制台上打印出每次上传的返回结果
文件下载脚本编写
执行脚本,在locust UI界面上开始测试,可以在Pycharm中看到接口的返回值
注意事项
下载文件过程中,服务端只负责把文件内容返回给客户端,文件的创建和保存应该是客户端来做的。如果做服务端的接口测试,本地就不需要创建文件了。文件的内容是放在响应body中的,只需要判断响应body的大小和文件大小相同,即代表下载成功了。