浏览 AI使用教程
文件上传接口怎么测试:同时覆盖分页、重试和超时
文件上传接口在 1MB 图片上成功,不代表能处理真实的大文件、弱网和自动重试。测试要同时看大小边界、超时、幂等和分页终止。
按实际操作顺序推进
每完成一段就检查当前输出,确认结果符合预期后再继续。
小文件上传正常,80MB 文件为什么会保存两份
上传限制与重试语义没有写清时,同一大文件可能在超时重试后产生两份对象。分页若只看每页条数,也可能漏掉末页或无限请求。
- 大小、类型、网络和重复边界已覆盖
- 分页有明确终止条件
- 上传结果通过哈希与对象数验证
动手前,把材料和不能改的部分定下来
| 需要确认 | 本例内容 |
|---|---|
| 现有材料 | 上传上限 100MB、超时 60 秒、支持幂等键;列表接口每页 50 条;测试环境可模拟断网和 429。 |
| 不能越过的边界 | 覆盖边界大小、类型、重试、超时、重复与分页终止;不使用真实敏感文件;记录服务端对象数。 |
| 要交付的结果 | 边界用例与接口测试表 |
文件上传接口怎么测试,从“文件上传”开始做
文件上传
格式、大小、分片、校验和、重复文件、恶意内容和存储失败。
- 核对结果:拒绝原因明确,部分文件不伪装全成功
分页
排序稳定、游标或页码、空页、末页、新增删除并发。
- 核对结果:遍历无重复无遗漏,终止条件可靠
重试
只对适合的瞬时失败重试,设置次数、退避和幂等键。
- 核对结果:写操作不会因重试重复创建或扣费
超时与取消
连接、读取、整体任务和上游超时分别处理,支持客户端取消。
- 核对结果:资源释放,用户知道是否已产生副作用
观测
请求 ID、批次、状态、耗时和错误层可关联。
- 核对结果:失败能从日志定位,不记录敏感正文
全篇使用同一份100MB/60秒教学契约
| 场景 | 输入或故障 | 预期断言 | 证据 |
|---|---|---|---|
| 大小边界 | 101MB,契约上限100MB | 拒绝且不创建半成品;本例约定413 | 响应与存储对象数 |
| 允许上限 | 100MB | 若其它约束满足则接受 | 下载后哈希与大小 |
| 写入后响应丢失 | 80MB已存储,客户端60秒超时再试 | 同一幂等键只返回原对象 | 对象ID、幂等记录与数量 |
| 分页末页 | 夹具最后一页next_cursor=null | 读取该页后停止,不靠50条猜终点 | 请求序列和去重后的主键 |
| 取消 | 上传中断开 | 根据契约查询是否已创建;清理临时块 | 任务状态与清理记录 |
这是测试设计,不是直接调用某个公开服务的脚本;100MB、60秒和413是本例契约,真实项目先确认其单位、边界和超时含义。
完成后的边界用例与接口测试表
以下均为待执行断言:0B按业务约定处理,1B/99MB/100MB验证允许范围,101MB应被拒绝;80MB超时重试使用同一幂等键,应只出现一个对象。分页按next_cursor为空停止,末页条数由夹具决定,不预报13条。
为什么“HTTP 返回成功,文件仍不可用”还不能交付
HTTP 返回成功,文件仍不可用
- 原因
- 只检查状态码,没有校验哈希、大小和可下载性
- 怎么改
- 上传后重新下载并比较哈希,清理测试对象并记录
