如何使用Jmeter测试Web应用单次可上传的最大媒体文件数量
JMeter测试Web应用单次最大上传媒体文件数量实操方案
前置准备
- 先抓取前端上传接口的真实请求参数:React前端多文件上传默认用
multipart/form-data格式,打开浏览器F12开发者工具,手动发起一次正常多文件上传请求,记录请求URL、鉴权字段(token/session等)、文件对应的表单字段名、其他配套请求参数 - 准备和实际业务场景一致的测试媒体文件:比如业务中用户上传的是2-5M的jpg图片、10-30M的mp4视频,就用对应大小、格式的文件做测试,避免测试结果和实际生产表现不符
JMeter核心配置
- 新建测试计划,添加线程组:线程数设为1即可,本次测试是验证单次请求的上传上限,不需要并发压力
- 线程组下添加HTTP请求采样器:
- 协议填应用对应的http/https,服务器地址填DigitalOcean上的应用域名或IP,端口填对应服务端口
- 请求方法选POST,路径填抓包拿到的上传接口路径
- 「高级」标签页中,客户端实现选择
Java,避免多文件/大文件上传时出现IO异常 - 勾选「使用multipart/form-data」选项
- 「Files Upload」标签页中,按抓包得到的表单字段名,逐个添加测试文件,对应填写正确的MIME类型,比如image/jpeg、video/mp4
- 若接口需要其他业务参数,比如用户ID、文件分类标识,在「Parameters」标签页中补充添加即可
- HTTP请求下添加HTTP信息头管理器:填入抓包得到的所有请求头,鉴权类字段必填,Content-Type不需要手动填写,JMeter会自动生成带boundary的正确值
- 添加查看结果树、汇总报告两个监听器,用于观测请求返回结果
测试执行逻辑
- 从低数量梯度开始测试,比如先上传2个文件,请求成功后做三重校验:
不仅要验证接口返回200、返回体提示成功,还要登录后端SQL数据库查询对应文件记录是否全部正确写入,同时登录DigitalOcean服务器确认上传的文件全部成功落盘,避免出现接口返回成功但实际数据存储失败的情况
- 每次按固定梯度增加上传文件数量,比如每次加3-5个,每轮测试都完成上述三重校验,直到请求报错、或者接口返回成功但实际落库/落盘数量不匹配,上一轮测试成功的文件数即为单次最大可上传数量
适配你的技术栈的注意事项
- 若要验证用户前端操作的实际上限,先确认React前端代码中是否配置了上传数量限制,前端限制会低于后端真实能力;若要测后端可支持的理论上限,直接用JMeter发请求即可,无需受前端规则限制
- 测试中如果出现500错误,优先排查SQL是否有事务大小限制、单条INSERT写入上限、数据库连接超时配置,很多时候上传瓶颈出在数据库层而非应用层
- 测试过程中可以同步观测DigitalOcean后台的服务器带宽、CPU、内存指标,若用了DigitalOcean Spaces对象存储,也要确认是否有单请求上传数量、带宽的规则限制,避免把基础设施层的瓶颈误判为应用层的上限
内容的提问来源于stack exchange,提问作者Hasini
相关产品推荐
相关产品推荐

