Skip to content

Repository files navigation

FileBrowser AI Testing Project

项目: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(可选)

启动 FileBrowser

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 test

查看 HTML 报告

npm 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

七、真实执行结果

最终 Chromium 回归(2026-07-12)

用例 耗时
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 通过

HTML 报告

reports/playwright-report/index.html(约 521 KB),已确认存在。

八、已知问题

测试前置条件问题(非产品 Bug)

一次中间失败是因为清除了 FILEBROWSER_USERNAMEFILEBROWSER_PASSWORD 环境变量后直接运行套件,属于测试前置条件缺失,不是 FileBrowser 功能缺陷。恢复环境变量后最终回归全通过。

详见 bugs/缺陷记录.md

九、AI 协作分工

角色 负责
ChatGPT 测试方案设计、项目规划、问题分析、结果审核
Codex 编写测试代码、文档编写、代码审查、项目整理
Claude Code (Linux) Linux 环境操作、Docker 部署、测试执行、日志收集

所有 AI 输出需人工复核,测试结论以真实日志、报告和截图为准。

详见 prompts/AI协作与人工复核说明.md

十、面试展示要点

  1. Docker 部署:一条 docker compose up -d 即可启动完整测试环境
  2. 24 条测试用例:覆盖登录、浏览、上传、预览、下载、删除、退出、界面等模块
  3. 3 条 Playwright 自动化:login → upload → delete 核心链路
  4. 稳定性验证:连续两次全通过(6/6),耗时 9.4s / 9.1s
  5. HTML 报告:521 KB 可视化测试报告
  6. 凭据安全:环境变量注入,无明文密码
  7. AI 协作:ChatGPT + Codex + Claude Code 三角色分工,人工复核闭环

详见 docs/面试讲解稿.md

十一、发布前检查

详见 docs/发布前自检清单.md


本项目已公开发布;data/database/.auth/.env* 等运行时或敏感内容不纳入版本控制。 所有结论仅基于已执行验证,未执行内容标记为"未覆盖"或"待验证"。

About

FileBrowser AI-assisted testing project with Playwright UI automation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages