Skip to content

文件上传和下载怎么测试

文件上传下载是业务系统常见功能。

简历、照片、合同、报表、批量导入导出,都涉及文件操作。

一、文件上传要测什么

文件上传测试要覆盖:

  • 正常文件上传;
  • 文件类型校验;
  • 文件大小校验;
  • 文件名特殊字符;
  • 空文件上传;
  • 重复文件上传;
  • 多文件上传;
  • 上传进度显示;
  • 上传失败处理;
  • 上传后文件可访问。

比如上传身份证照片:

  • 上传 JPG、PNG 格式照片;
  • 上传 PDF 是否被拦截;
  • 上传超过 5MB 文件是否被拦截;
  • 文件名含中文、空格、特殊字符;
  • 上传空文件是否有提示;
  • 上传同名文件是否覆盖或拦截;
  • 上传多张照片是否支持;
  • 上传过程是否有进度条;
  • 网络中断上传失败是否有提示;
  • 上传成功后是否可预览或下载。

二、文件类型校验要测试

文件类型校验要验证:

  • 允许的文件类型是否可上传;
  • 不允许的文件类型是否被拦截;
  • 文件扩展名和实际内容是否一致;
  • 伪造扩展名是否可绕过;
  • MIME 类型校验是否生效。

比如上传简历:

  • 允许 DOC、DOCX、PDF;
  • 不允许 EXE、BAT 是否被拦截;
  • 修改 EXE 文件扩展名为 DOCX 是否可绕过;
  • 通过抓包修改 MIME 类型是否可绕过。

文件类型校验不严谨可能被利用上传恶意文件。

三、文件大小校验要测试

文件大小校验要验证:

  • 最大文件大小限制是否生效;
  • 超过限制是否有提示;
  • 文件大小计算是否正确;
  • 前端和后端校验是否一致。

比如上传照片:

  • 最大允许 5MB;
  • 上传 10MB 文件是否被拦截;
  • 前端是否拦截超大文件;
  • 后端是否再次校验文件大小。

前端拦截可以减少无效上传,后端拦截才是安全保障。

四、文件名和路径要测试

文件名和路径要验证:

  • 文件名含中文是否正常;
  • 文件名含空格是否正常;
  • 文件名含特殊字符是否正常;
  • 文件名超长是否正常;
  • 文件名重复是否覆盖或拦截;
  • 文件存储路径是否安全。

比如上传合同:

  • 文件名含中文字符是否可上传和下载;
  • 文件名含空格和括号是否正常;
  • 文件名含路径分隔符是否被拦截;
  • 文件名超过系统限制是否被拦截。

文件名问题可能导致上传失败或文件损坏。

五、文件下载要测什么

文件下载测试要覆盖:

  • 正常文件下载;
  • 文件不存在下载;
  • 文件权限下载;
  • 文件名正确性;
  • 文件内容正确性;
  • 大文件下载;
  • 批量文件下载;
  • 下载中断恢复。

比如下载报表:

  • 下载已生成的报表文件;
  • 下载不存在文件是否有提示;
  • 无权限下载他人文件是否被拦截;
  • 下载文件名是否正确;
  • 下载文件内容是否正确;
  • 下载大文件是否可完成;
  • 批量下载多个文件是否支持;
  • 网络中断下载是否有重试机制。

六、文件安全要关注

文件上传下载涉及安全风险:

  • 是否可上传恶意文件;
  • 是否可下载敏感文件;
  • 是否可通过路径遍历访问其他文件;
  • 文件存储位置是否安全;
  • 文件访问是否有权限控制;
  • 文件是否有病毒或恶意内容扫描。

比如上传文件:

  • 是否可上传可执行文件;
  • 是否可上传含恶意脚本的文件;
  • 是否可通过修改路径访问他人文件;
  • 文件存储目录是否在 Web 目录下;
  • 文件访问是否需要登录和权限。

文件安全往往是漏洞高发区。

七、面试回答模板

可以这样回答:

文件上传下载测试我会从功能、类型校验、大小校验、文件名、下载功能和安全几个方面展开。上传测正常文件、允许和禁止类型、大小限制、空文件、重复文件、多文件、进度显示、失败处理、上传后可访问;类型校验测扩展名和内容是否一致、伪造扩展名是否可绕过、MIME 类型校验;大小校验测最大限制、超限拦截、前后端校验一致性;文件名测中文、空格、特殊字符、超长、重复、路径安全;下载测正常下载、文件不存在、权限控制、文件名和内容正确性、大文件、批量下载、中断恢复;安全测恶意文件上传、敏感文件下载、路径遍历、存储位置、权限控制、病毒扫描。

这个回答能体现你有完整的文件上传下载测试思路。

八、下一步建议

建议你把一个熟悉的文件上传下载功能按上面维度重新整理:

  • 上传功能测试点;
  • 类型校验测试点;
  • 大小校验测试点;
  • 文件名测试点;
  • 下载功能测试点;
  • 安全测试点。

Powered by VitePress

🔒 需要口令解锁

关注微信公众号 测开阿Duang
回复关键词 「密码」 获取口令

公众号二维码

解锁后本浏览器长期有效