当前位置:网站首页>基于Locust框架进行文件上传下载性能测试
基于Locust框架进行文件上传下载性能测试
2022-07-26 12:44:00 【码同学软件测试】
在很多业务场景中,需要针对文件上传和下载进行测试。当你要测试一个业务时,必须要先理解这个业务的本质。我们先来看下上传和下载的本质。
文件上传过程
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测试文件上传下载
先来看下某项目上传和下载的接口文档

文件上传脚本编写

执行脚本,在本地浏览器中请求http://localhost:8089/,输入并发用户,和ip端口,点击开始执行

可以在Pycharm的控制台上打印出每次上传的返回结果

文件下载脚本编写

执行脚本,在locust UI界面上开始测试,可以在Pycharm中看到接口的返回值
在这里插入图片描述
注意事项
下载文件过程中,服务端只负责把文件内容返回给客户端,文件的创建和保存应该是客户端来做的。如果做服务端的接口测试,本地就不需要创建文件了。文件的内容是放在响应body中的,只需要判断响应body的大小和文件大小相同,即代表下载成功了。
边栏推荐
- Backtracking - 46. Full arrangement
- SLAM 02.整体框架
- Ue5 official case Lyra full feature explanation 7. resource management
- LCD笔记(7)LCD驱动程序框架_配置时钟
- Huawei ultra fusion fusioncube solution notes
- 虚拟偶像代言产品出问题谁负责?且听律师分析
- 关于图片地址链接复制问题
- 食品安全 | 无菌蛋真的完全无菌吗?
- Detailed explanation of redis's single login
- The "2022 Huawei developer competition eastern China division opening ceremony" was successfully held in Fuzhou
猜你喜欢

Detailed interpretation of hole convolution (input and output size analysis)

jvm:类加载子系统干什么的?由什么组成?需要记住哪些八股文?

New function | intelligent open search online customized word weight model

A super easy-to-use artifact apifox, throw swagger a few streets... (glory Collection Edition)

LCD notes (7) LCD driver framework_ Configure clock

【TypeScript】TypeScript常用类型(下篇)
2022 employment season! Adobe helps creative industry workers break through the shackles of skills and return to the source of ability

Shutter background graying effect, how transparency, gray mask

华为超融合FusionCube解决方案笔记

今日睡眠质量记录75分
随机推荐
0基础编程资源大全(先收藏~慢慢看~)
Interviewer: how to understand QPS, TPS, RT?
关于自动重复调用接口的一种实现方式-反射
Kubernetes----高级存储之PV和PVC简介
基于C#开放式TCP通信建立与西门子PLC的socket通信示例
食品安全 | 网购的自制食品就是健康食品?莫要陷入这些误区
Emerging security providers to learn about in 2022
Microsoft has shut down two attack methods: Office macro and RDP brute force cracking
Kubernetes - Introduction to PV and PVC of advanced storage
C语言文件知识点
Interview JD T5, was pressed on the ground friction, who knows what I experienced?
最好的工程师,就是这样被你“逼”走的!
C#把Type当做泛型T,来作为方法的泛型进行使用
Huawei ultra fusion fusioncube solution notes
Azure synapse analytics Performance Optimization Guide (2) -- optimize performance using materialized views (Part 1)
Interviewer: how to deal with high concurrency?
Does anyone know where the retract of flinksql can be specified? Only api code settings can be seen in online materials
Various extensions of hcip-9.ospf
PXE原理与配置
Bitwise and how to write SQL