浏览 AI 知识库
文件上传接口怎么测试:同时覆盖分页、重试和超时
文件上传接口在 1MB 图片上成功,不代表能处理真实的大文件、弱网和自动重试。测试要同时看大小边界、超时、幂等和分页终止。
按实际操作顺序推进
每完成一段就检查当前输出,确认结果符合预期后再继续。
小文件上传正常,80MB 文件为什么会保存两份
1MB 图片上传成功,真实 80MB 文件在弱网下超时;客户端自动重试后服务端保存了两个对象。分页接口最后一页为空时又陷入循环。
- 大小、类型、网络和重复边界已覆盖
- 分页有明确终止条件
- 上传结果通过哈希与对象数验证
动手前,把材料和不能改的部分定下来
| 需要确认 | 本例内容 |
|---|---|
| 现有材料 | 上传上限 100MB、超时 60 秒、支持幂等键;列表接口每页 50 条;测试环境可模拟断网和 429。 |
| 不能越过的边界 | 覆盖边界大小、类型、重试、超时、重复与分页终止;不使用真实敏感文件;记录服务端对象数。 |
| 要交付的结果 | 边界用例与接口测试表 |
文件上传接口怎么测试,从“文件上传”开始做
文件上传
格式、大小、分片、校验和、重复文件、恶意内容和存储失败。
- 核对结果:拒绝原因明确,部分文件不伪装全成功
分页
排序稳定、游标或页码、空页、末页、新增删除并发。
- 核对结果:遍历无重复无遗漏,终止条件可靠
重试
只对适合的瞬时失败重试,设置次数、退避和幂等键。
- 核对结果:写操作不会因重试重复创建或扣费
超时与取消
连接、读取、整体任务和上游超时分别处理,支持客户端取消。
- 核对结果:资源释放,用户知道是否已产生副作用
观测
请求 ID、批次、状态、耗时和错误层可关联。
- 核对结果:失败能从日志定位,不记录敏感正文
一次上传流程要分别验证 413、429、超时和取消
| 场景 | 输入/故障 | 预期输出 | 日志证据 |
|---|---|---|---|
| 大文件 | 28 MB,限制 20 MB | 明确 413,不创建半成品 | 请求 ID、大小和拒绝原因 |
| 重复提交 | 同一幂等键重试两次 | 只生成一个对象 | 幂等键和最终对象 ID |
| 慢上游 | 上游 30 秒无响应 | 按退避重试或可取消 | 连接/读取/整体超时层 |
| 中途取消 | 客户端在处理中断开 | 资源释放,状态可查询 | 任务状态和清理记录 |
状态码和限制值为示例;实际以服务契约、客户端和上游限制为准。
完成后的边界用例与接口测试表
测试表覆盖 0B、1B、99MB、100MB、101MB、错误 MIME、中断恢复和同幂等键重试。80MB 弱网首次超时后重试只生成一个对象;分页在 next_cursor 为空时停止,末页 13 条。
为什么“HTTP 返回成功,文件仍不可用”还不能交付
HTTP 返回成功,文件仍不可用
- 原因
- 只检查状态码,没有校验哈希、大小和可下载性
- 怎么改
- 上传后重新下载并比较哈希,清理测试对象并记录
