项目:FileBrowser 在线文件管理系统 — 功能测试与自动化验证 被测版本:FileBrowser v2.63.18(Docker 部署) 测试环境:qa-linux(Linux, tester 用户) 状态:已公开发布;测试结论以仓库内真实报告与证据为准
本项目对 FileBrowser(开源在线文件管理系统)进行功能测试与 Playwright 自动化验证。测试覆盖登录、目录浏览、文件上传、文件删除、退出登录等核心链路,采用 Chromium + Firefox 双浏览器策略。
| 功能模块 | 自动化 | 人工 |
|---|---|---|
| 登录(正确凭据) | ✅ TC-FB-001 | ✅ |
| 文件上传 | ✅ TC-FB-008 | ✅ |
| 文件删除 | ✅ TC-FB-014 | ✅ |
| 错误密码登录 | — | ✅ |
| 目录浏览/导航 | — | ✅ |
| 文件预览/下载 | — | ✅ |
| 退出登录/访问保护 | — | ✅ |
| Firefox 人工兼容性抽样(TC-FB-021、TC-FB-022) | — | ✅ |
- 多用户/权限管理
- 命令行接口 (CLI)
- WebDAV / 分享链接
- 性能/压力测试
- 移动端浏览器兼容性
- 空字段登录(TC-FB-003, TC-FB-004)
- 新建目录/重命名(TC-FB-018, TC-FB-019)
- 多文件连续上传(TC-FB-023)
- 界面元素检查(TC-FB-024)
filebrowser-ai-testing-project/
├── README.md # 本文件
├── docker-compose.yml # FileBrowser Docker 部署
├── package.json # Node.js 项目配置
├── playwright.config.ts # Playwright 配置(list + HTML reporter)
├── .gitignore
├── config/settings.json # FileBrowser 配置
├── database/filebrowser.db # SQLite 数据库(本地运行时目录,已忽略,不上传 GitHub)
├── data/ # FileBrowser 文件存储(本地运行时目录,已忽略,不上传 GitHub)
├── testdata/ # 自动化测试用数据文件
├── tests/ # Playwright 测试脚本
│ ├── login.spec.ts # TC-FB-001
│ ├── upload.spec.ts # TC-FB-008
│ ├── delete.spec.ts # TC-FB-014
│ └── helpers/ # 测试辅助模块
├── scripts/
│ ├── create-auth-state.mjs # 登录态生成脚本
│ └── inspect-filebrowser-ui.mjs # UI 诊断脚本
├── testcases/
│ └── FileBrowser_功能测试用例_v1.md # 24 条人工测试用例
├── docs/
│ ├── 测试计划.md
│ ├── 测试范围与风险分析.md
│ ├── 人工执行指南_Day3.md
│ ├── 测试报告.md # 收口测试报告
│ ├── 面试讲解稿.md # 面试讲解材料
│ └── 发布前自检清单.md # 发布前检查清单
├── bugs/缺陷记录.md
├── prompts/AI协作与人工复核说明.md
├── reports/playwright-report/ # HTML 测试报告(已生成,约 521 KB)
├── evidence/ # 人工执行证据
└── api-tests/、ui-tests/ # 预留扩展目录
- Docker
- Node.js(Playwright 1.61.1)
- Chromium(默认)、Firefox(可选)
docker compose up -d服务端口:http://127.0.0.1:8082
npm install
npx playwright install chromium密码绝不硬编码。 通过环境变量注入:
export FILEBROWSER_USERNAME=<your-username>
export FILEBROWSER_PASSWORD=<your-password>node scripts/create-auth-state.mjs登录态保存至 .auth/qa-automation.json(已加入 .gitignore,不纳入版本控制)。
# Chromium(默认)
npm run test:chromium
# Firefox
npm run test:firefox
# 全部
npm testnpm run test:report
# 或直接打开
# reports/playwright-report/index.html| 用例 ID | 描述 | 测试脚本 |
|---|---|---|
| TC-FB-001 | 正确账号密码登录后进入 /files 并显示 qa-test |
tests/login.spec.ts |
| TC-FB-008 | 通过隐藏的 #upload-input 上传唯一命名文件到 qa-test |
tests/upload.spec.ts |
| TC-FB-014 | 通过 UI 删除单个文件并验证文件移除 | tests/delete.spec.ts |
| 用例 | 耗时 |
|---|---|
| TC-FB-001 | 1.8s |
| TC-FB-008 | 2.7s |
| TC-FB-014 | 3.3s |
| 合计 | 3 passed (9.8s) |
同一套 Chromium 用例连续两次执行,均 3/3 通过:
| 轮次 | 结果 | 耗时 |
|---|---|---|
| 第 1 次 | 3 passed | 9.4s |
| 第 2 次 | 3 passed | 9.1s |
| 合计 | 6/6 通过 | — |
reports/playwright-report/index.html(约 521 KB),已确认存在。
一次中间失败是因为清除了 FILEBROWSER_USERNAME 和 FILEBROWSER_PASSWORD 环境变量后直接运行套件,属于测试前置条件缺失,不是 FileBrowser 功能缺陷。恢复环境变量后最终回归全通过。
详见 bugs/缺陷记录.md。
| 角色 | 负责 |
|---|---|
| ChatGPT | 测试方案设计、项目规划、问题分析、结果审核 |
| Codex | 编写测试代码、文档编写、代码审查、项目整理 |
| Claude Code (Linux) | Linux 环境操作、Docker 部署、测试执行、日志收集 |
所有 AI 输出需人工复核,测试结论以真实日志、报告和截图为准。
详见 prompts/AI协作与人工复核说明.md。
- Docker 部署:一条
docker compose up -d即可启动完整测试环境 - 24 条测试用例:覆盖登录、浏览、上传、预览、下载、删除、退出、界面等模块
- 3 条 Playwright 自动化:login → upload → delete 核心链路
- 稳定性验证:连续两次全通过(6/6),耗时 9.4s / 9.1s
- HTML 报告:521 KB 可视化测试报告
- 凭据安全:环境变量注入,无明文密码
- AI 协作:ChatGPT + Codex + Claude Code 三角色分工,人工复核闭环
详见 docs/面试讲解稿.md。
详见 docs/发布前自检清单.md。
本项目已公开发布;
data/、database/、.auth/、.env*等运行时或敏感内容不纳入版本控制。 所有结论仅基于已执行验证,未执行内容标记为"未覆盖"或"待验证"。