17. 文件上传下载功能怎么测试?
文件上传下载是业务系统里很常见的功能,比如头像上传、附件上传、简历上传、合同上传、报表下载。
这类功能如果测不细,容易出现格式绕过、文件丢失、权限泄露和下载乱码等问题。
一、先确认上传规则
测试前要确认:
- 支持哪些文件类型;
- 单个文件大小限制;
- 是否支持多文件上传;
- 文件数量限制;
- 文件名长度限制;
- 是否允许中文文件名;
- 是否需要预览;
- 上传后保存在哪里。
规则不清楚,就很难判断测试结果。
二、正常上传要验证完整流程
正常上传要看:
- 选择文件后是否展示文件名;
- 上传进度是否正常;
- 上传成功后是否提示;
- 文件是否能预览;
- 文件是否能下载;
- 刷新页面后文件是否还在;
- 数据库是否记录文件地址。
不能只看到“上传成功”就结束。
三、文件类型校验要重点测
文件类型测试包括:
- 支持的格式,比如 jpg、png、pdf、docx;
- 不支持的格式,比如 exe、js、html;
- 修改后缀伪装文件;
- 文件 MIME 类型不匹配;
- 文件名包含特殊字符;
- 文件名包含多个点,比如 a.jpg.exe。
如果系统只校验后缀,存在安全风险。
四、文件大小和数量要测边界
要测试:
- 小于限制;
- 等于限制;
- 大于限制;
- 0KB 文件;
- 空文件;
- 多文件同时上传;
- 超过最大数量;
- 上传过程中取消。
比如限制 10MB,就要测 9.9MB、10MB、10.1MB。
五、异常场景不能漏
常见异常包括:
- 上传中断网;
- 上传中关闭页面;
- 上传超时;
- 服务端报错;
- 重复上传同名文件;
- 上传后删除;
- 删除后再次上传;
- 权限不足仍尝试上传。
异常场景下要看是否有明确提示,以及是否产生脏数据。
六、下载测试要看权限和内容
下载功能要验证:
- 文件能否正常下载;
- 文件名是否正确;
- 中文文件名是否乱码;
- 文件大小是否一致;
- 文件内容是否完整;
- 无权限用户是否不能下载;
- 删除后的文件是否不能下载;
- 下载链接是否有过期控制。
尤其是附件类系统,不能让用户通过链接下载别人的文件。
七、预览功能要单独测试
如果支持预览,要看:
- 图片预览;
- PDF 预览;
- Office 文件预览;
- 大文件预览;
- 不支持格式的提示;
- 移动端预览效果;
- 预览权限控制。
预览和下载可能走不同接口,都要测。
八、面试回答模板
可以这样回答:
文件上传下载我会先确认文件类型、大小、数量、命名和权限规则。上传时覆盖正常上传、格式不支持、修改后缀、超大文件、空文件、多文件、断网和重复上传等场景;上传成功后会验证页面展示、预览、下载、数据库文件地址是否正确。下载时重点验证文件名、内容完整性、中文乱码、无权限访问和下载链接过期,避免文件泄露。
这个答案比“上传一个文件看看成功不成功”完整很多。
九、下一步建议
文件上传下载建议准备两个案例:
- 头像上传;
- 合同或附件上传下载。
配套刷题:

