100 lines
4.5 KiB
Markdown
100 lines
4.5 KiB
Markdown
# 三端自动化测试
|
||
|
||
> 本项目覆盖 **后端 API**、**Web 后台管理系统**、**小程序** 三端的自动化测试,总计 **1,286+ 用例,100% 通过率**。
|
||
|
||
---
|
||
|
||
## 测试总览
|
||
|
||
| 端 | 测试类型 | 框架 | 用例数 | 通过率 | 详细文档 |
|
||
|---|---|---|---|---|---|
|
||
| **后端 API** | 单元 + 集成 | JUnit 5 + Mockito | 1,094 | 100% | [backend-api-test.md](docs/backend-api-test.md) |
|
||
| **Web 后台** | 单元(组件) | Vitest + jsdom | 171 | 100% | [web-admin-test.md](docs/web-admin-test.md) |
|
||
| **Web 后台** | E2E(端到端) | Playwright | 24+ | 100% | [web-admin-test.md](docs/web-admin-test.md) |
|
||
| **小程序** | E2E(端到端) | Jest + miniprogram-automator | 7 | 100% | [miniapp-test.md](docs/miniapp-test.md) |
|
||
|
||
---
|
||
|
||
## 各端运行方式
|
||
|
||
```bash
|
||
# 后端 API
|
||
cd gym-manage-api && mvn test
|
||
|
||
# Web 后台 — 单元测试
|
||
cd gym-manage-web && npm run test
|
||
|
||
# Web 后台 — E2E 测试
|
||
cd gym-manage-web && npm run test:e2e
|
||
|
||
# 小程序 — E2E 测试
|
||
cd gym-manage-uniapp && npx jest --config e2e/jest.config.js
|
||
```
|
||
|
||
---
|
||
|
||
## 自动化触发时机
|
||
|
||
| 触发条件 | 后端 API | Web 单元 | Web E2E | 小程序 E2E |
|
||
|---|---|---|---|---|
|
||
| **Push 到功能分支** | ✅ 自动 | ✅ 自动 | ❌ | ❌ |
|
||
| **PR 提交到 main/master** | ✅ 自动 | ✅ 自动 | ✅ 自动 | ✅ 自动 |
|
||
| **合并到 main/master** | ✅ 自动 | ✅ 自动 | ✅ 自动 | ✅ 自动 |
|
||
| **每日定时(凌晨 2:00)** | ✅ 自动 | ✅ 自动 | ✅ 自动 | ❌ |
|
||
| **手动触发** | ✅ | ✅ | ✅ | ✅ |
|
||
|
||
### 触发策略说明
|
||
|
||
**Push 到功能分支**(快速反馈,< 5 分钟):
|
||
- 运行后端单元测试 + Web 单元测试
|
||
- E2E 测试不触发(耗时较长,避免阻塞开发)
|
||
|
||
**PR / 合并到 main**(完整验证,< 15 分钟):
|
||
- 运行全部三端测试
|
||
- 小程序 E2E 需微信开发者工具环境,无环境时跳过
|
||
|
||
**每日定时**(全量回归):
|
||
- 凌晨自动运行全部测试,生成报告
|
||
- 小程序 E2E 除外(需 GUI 环境)
|
||
|
||
---
|
||
|
||
## 测试分层架构
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────┐
|
||
│ 三端测试体系 │
|
||
├──────────────┬──────────────────┬───────────────────┤
|
||
│ 后端 API │ Web 后台管理 │ 小程序 │
|
||
├──────────────┼──────────────────┼───────────────────┤
|
||
│ JUnit 5 │ Vitest (单元) │ Jest + automator │
|
||
│ Mockito │ jsdom (DOM模拟) │ (E2E) │
|
||
│ Reactor Test │ Playwright (E2E) │ │
|
||
├──────────────┼──────────────────┼───────────────────┤
|
||
│ 105 测试文件 │ 24 单元文件 │ 3 套件 │
|
||
│ 15 模块 │ 24+ E2E文件 │ 7 用例 │
|
||
│ 1,094 用例 │ 185+ 用例 │ 5 Page Object │
|
||
└──────────────┴──────────────────┴───────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 快速链接
|
||
|
||
| 文档 | 内容 |
|
||
|---|---|
|
||
| [backend-api-test.md](docs/backend-api-test.md) | 后端 15 模块详细测试清单、API 路由覆盖、状态机测试矩阵 |
|
||
| [web-admin-test.md](docs/web-admin-test.md) | Vitest 24 文件详情 + Playwright 4 项目详情 + 17 个 Page Object |
|
||
| [miniapp-test.md](docs/miniapp-test.md) | 3 套件详情、预约+签到流程、Mock 策略、环境配置 |
|
||
| [../docs/test-report-2026-07-21.md](../docs/test-report-2026-07-21.md) | 全量测试报告(含测试路线图) |
|
||
| [../Jenkinsfile](../Jenkinsfile) | CI/CD 流水线配置 |
|
||
|
||
---
|
||
|
||
## 维护指南
|
||
|
||
1. **新增后端接口** → 在对应模块 `src/test/` 下添加 JUnit 测试,更新 [backend-api-test.md](docs/backend-api-test.md)
|
||
2. **新增 Web 页面** → 添加 Vitest 组件测试 + Page Object + E2E 旅程,更新 [web-admin-test.md](docs/web-admin-test.md)
|
||
3. **新增小程序功能** → 添加 E2E 用例或 Page Object,更新 [miniapp-test.md](docs/miniapp-test.md)
|
||
4. **修改 CI 触发规则** → 编辑 `Jenkinsfile`,同步更新本文档「自动化触发时机」章节
|