Skip to content

标准测试流程 ​

本文定义 reader-rust 的标准回归测试流程,目标是让前端、后端和交互流程在发布前都有一套统一检查。

测试目标 ​

  • 验证核心页面和主要导航是否正常
  • 验证书架、搜索、发现、RSS、设置等高频功能是否可用
  • 验证需要真实数据的流程有固定的手工回归步骤
  • 提供一套可用 Playwright 自动执行的基础冒烟测试

测试分层 ​

1. 构建与静态检查 ​

发布前至少执行:

bash
cargo check
cargo test
cd frontend && npm run build

这层负责发现:

  • Rust 编译错误
  • 解析器回归
  • 前端类型错误
  • 前端打包错误

2. Playwright 自动冒烟 ​

Playwright 目录在仓库根目录:

安装依赖:

bash
npm install
npx playwright install

执行:

bash
npm run test:e2e

可视化调试:

bash
npm run test:e2e:headed
npm run test:e2e:ui

默认测试地址:

text
http://127.0.0.1:8080/#/

如果服务地址不同:

bash
PLAYWRIGHT_BASE_URL=http://127.0.0.1:9000/#/ npm run test:e2e

3. 手工全量回归 ​

有些功能依赖真实书源、账号、缓存、RSS 数据或设备行为,不适合全部硬编码进自动测试。发布前建议按下面流程人工回归。

自动测试覆盖 ​

当前 Playwright 冒烟覆盖这些能力:

  • 顶部/底部导航切换
  • 书架、书海、最近、RSS 主页面可打开
  • 设置抽屉可打开
  • 书源管理、用户管理、备份恢复入口可见
  • 全局搜索可进入搜索模式
  • 搜索结果范围切换 UI 可见
  • 分组管理、缓存管理弹窗可打开
  • RSS 管理页跳转可用

可选自动回归 ​

有些用例需要环境变量提供测试数据。

登录回归 ​

bash
E2E_USERNAME=admin \
E2E_PASSWORD=12345678 \
npm run test:e2e

搜索结果详情回归 ​

bash
E2E_SEARCH_KEYWORD=凡人修仙传 \
E2E_EXPECTED_BOOK_NAME=凡人修仙传 \
npm run test:e2e

书源导入回归 ​

bash
E2E_SOURCE_IMPORT_FILE=/absolute/path/to/book-sources.json \
npm run test:e2e

标准手工回归清单 ​

A. 书架 ​

  1. 打开首页,确认书架列表正常显示
  2. 打开一本已有书籍,确认能进入阅读页
  3. 返回书架,确认最近阅读顺序更新
  4. 打开书籍详情弹窗,确认目录能加载
  5. 测试编辑模式、批量选择、分组移动、删除

B. 搜索 ​

  1. 输入关键词进入搜索模式
  2. 验证 全部书源 / 按分组 / 单个书源 都能切换
  3. 验证搜索结果里显示书源信息和最新章节
  4. 点击封面打开书籍详情
  5. 点击结果项进入阅读
  6. 点击“加入书架”后书架中可见

C. 书源管理 ​

  1. 打开设置中的书源管理
  2. 本地导入书源 JSON
  3. 远程订阅同步一次
  4. 启用/禁用书源
  5. 编辑并保存一个书源
  6. 触发书源登录,确认状态返回正常

D. 阅读器 ​

  1. 打开章节目录并切换章节
  2. 打开章节搜索面板并搜索当前章节
  3. 修改字体、间距、主题等阅读设置
  4. 测试正文分页或滚动模式是否正常
  5. 如启用 TTS,验证播放、暂停、续播、下一章
  6. iOS/iPadOS 桌面模式验证首开和前后台切换

E. 发现页 ​

  1. 切换不同发现书源
  2. 切换不同分类
  3. 滚动加载更多
  4. 点击书籍进入阅读
  5. 点击“加入书架”验证写入成功

F. 最近阅读 ​

  1. 验证最近阅读列表显示正常
  2. 搜索最近阅读
  3. 打开历史条目继续阅读
  4. 删除最近阅读条目

G. RSS ​

  1. 进入 RSS 首页
  2. 切换当前源、全部文章、分组文章
  3. 打开文章正文
  4. 进入 RSS 管理页,新增/编辑/删除 RSS 源
  5. 刷新文章并确认分页加载

H. 用户与备份 ​

  1. 未登录时打开设置,确认登录入口正常
  2. 登录后确认用户名和角色显示正常
  3. 修改密码
  4. 多用户模式下打开用户管理
  5. 开启 WebDAV/服务器备份时验证备份恢复入口

发布前建议流程 ​

推荐每次发布都按这个顺序执行:

  1. cargo check
  2. cargo test
  3. cd frontend && npm run build
  4. npm run test:e2e
  5. 按“标准手工回归清单”执行一次完整人工检查

如果这次改动涉及以下模块,必须追加专项回归:

  • 解析器:补书源导入、搜索、详情、目录、正文测试
  • 阅读器:补阅读页、TTS、移动端和 iOS/iPadOS 测试
  • 用户系统:补登录、登出、用户管理、权限测试
  • RSS:补 RSS 管理和正文加载测试

后续建议 ​

后续可以继续补这些方向:

  • 增加 Playwright 测试专用 fixture 数据
  • 增加测试账号和测试书源初始化脚本
  • 增加 CI 中的 E2E 冒烟任务
  • 增加移动端视口和 PWA 模式专项测试