我的测试学习站TEST LEARNING HUB
开始学习
首页/精华文章/17. 文件上传下载功能怎么测试

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

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

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

一、先确认上传规则

测试前要确认:

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

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

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

正常上传要看:

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

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

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

文件类型测试包括:

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

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

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

要测试:

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

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

五、异常场景不能漏

常见异常包括:

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

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

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

下载功能要验证:

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

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

七、预览功能要单独测试

如果支持预览,要看:

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

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

八、面试回答模板

可以这样回答:

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

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

九、下一步建议

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

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

配套刷题: