小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 业务测试理论精华文章

    • 业务测试理论精华文章
    • 1. 测试流程面试怎么讲才不像背书
    • 2. 测试用例设计方法如何结合真实业务
    • 3. 登录功能怎么测才能讲出深度
    • 4. 下单支付功能怎么测才能体现项目经验
    • 5. 审批流功能测试应该怎么设计
    • 6. Bug 生命周期和缺陷管理怎么回答
    • 7. 功能测试项目经历怎么讲出亮点
    • 8. 需求评审阶段测试人员到底要做什么
    • 9. 回归测试怎么做才不会漏测
    • 10. 功能测试如何体现接口和数据库意识
    • 11. Web 功能测试到底应该怎么测
    • 12. App 测试应该怎么测才完整
    • 13. 小程序测试应该重点测什么
    • 14. 接口测试应该怎么测才算完整
    • 15. 表单类功能怎么测试最全面
    • 16. 搜索筛选和分页功能怎么测试
    • 17. 文件上传下载功能怎么测试
    • 18. 权限功能测试应该怎么测
    • 19. 消息通知功能怎么测试
    • 20. 兼容性测试应该怎么做
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

17. 文件上传下载功能怎么测试?

文件上传下载是业务系统里很常见的功能,比如头像上传、附件上传、简历上传、合同上传、报表下载。

这类功能如果测不细,容易出现格式绕过、文件丢失、权限泄露和下载乱码等问题。

一、先确认上传规则

测试前要确认:

  • 支持哪些文件类型;
  • 单个文件大小限制;
  • 是否支持多文件上传;
  • 文件数量限制;
  • 文件名长度限制;
  • 是否允许中文文件名;
  • 是否需要预览;
  • 上传后保存在哪里。

规则不清楚,就很难判断测试结果。

二、正常上传要验证完整流程

正常上传要看:

  • 选择文件后是否展示文件名;
  • 上传进度是否正常;
  • 上传成功后是否提示;
  • 文件是否能预览;
  • 文件是否能下载;
  • 刷新页面后文件是否还在;
  • 数据库是否记录文件地址。

不能只看到“上传成功”就结束。

三、文件类型校验要重点测

文件类型测试包括:

  • 支持的格式,比如 jpg、png、pdf、docx;
  • 不支持的格式,比如 exe、js、html;
  • 修改后缀伪装文件;
  • 文件 MIME 类型不匹配;
  • 文件名包含特殊字符;
  • 文件名包含多个点,比如 a.jpg.exe。

如果系统只校验后缀,存在安全风险。

四、文件大小和数量要测边界

要测试:

  • 小于限制;
  • 等于限制;
  • 大于限制;
  • 0KB 文件;
  • 空文件;
  • 多文件同时上传;
  • 超过最大数量;
  • 上传过程中取消。

比如限制 10MB,就要测 9.9MB、10MB、10.1MB。

五、异常场景不能漏

常见异常包括:

  • 上传中断网;
  • 上传中关闭页面;
  • 上传超时;
  • 服务端报错;
  • 重复上传同名文件;
  • 上传后删除;
  • 删除后再次上传;
  • 权限不足仍尝试上传。

异常场景下要看是否有明确提示,以及是否产生脏数据。

六、下载测试要看权限和内容

下载功能要验证:

  • 文件能否正常下载;
  • 文件名是否正确;
  • 中文文件名是否乱码;
  • 文件大小是否一致;
  • 文件内容是否完整;
  • 无权限用户是否不能下载;
  • 删除后的文件是否不能下载;
  • 下载链接是否有过期控制。

尤其是附件类系统,不能让用户通过链接下载别人的文件。

七、预览功能要单独测试

如果支持预览,要看:

  • 图片预览;
  • PDF 预览;
  • Office 文件预览;
  • 大文件预览;
  • 不支持格式的提示;
  • 移动端预览效果;
  • 预览权限控制。

预览和下载可能走不同接口,都要测。

八、面试回答模板

可以这样回答:

文件上传下载我会先确认文件类型、大小、数量、命名和权限规则。上传时覆盖正常上传、格式不支持、修改后缀、超大文件、空文件、多文件、断网和重复上传等场景;上传成功后会验证页面展示、预览、下载、数据库文件地址是否正确。下载时重点验证文件名、内容完整性、中文乱码、无权限访问和下载链接过期,避免文件泄露。

这个答案比“上传一个文件看看成功不成功”完整很多。

九、下一步建议

文件上传下载建议准备两个案例:

  • 头像上传;
  • 合同或附件上传下载。

配套刷题:

  • 业务测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
16. 搜索筛选和分页功能怎么测试
Next
18. 权限功能测试应该怎么测