增加 后端,后台管理系统,uniapp会员端的自动化测试。

This commit is contained in:
2026-07-21 18:09:29 +08:00
parent df0e68469b
commit 6b60b3b4da
64 changed files with 13095 additions and 376 deletions
+80 -41
View File
@@ -1,60 +1,99 @@
# E2E测试说明
# 三端自动化测试
## 测试结构
> 本项目覆盖 **后端 API**、**Web 后台管理系统**、**小程序** 三端的自动化测试,总计 **1,286+ 用例,100% 通过率**。
本项目的E2E测试采用分层测试策略:
---
### 冒烟测试(smoke/
## 测试总览
快速验证基础功能是否正常工作。
| 端 | 测试类型 | 框架 | 用例数 | 通过率 | 详细文档 |
|---|---|---|---|---|---|
| **后端 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) |
- `login-logout.spec.ts` - 登录登出基础流程
---
### 核心旅程测试(journeys/
验证关键业务端到端流程。
- `admin-complete-workflow.spec.ts` - 管理员完整工作流
- `user-permission-boundary.spec.ts` - 用户权限边界验证
- `file-management-workflow.spec.ts` - 文件上传下载流程
- `audit-workflow.spec.ts` - 审计日志查看流程
## 运行测试
### 运行冒烟测试
## 各端运行方式
```bash
npm run test:e2e:smoke
# 后端 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
```
### 运行核心旅程测试
---
```bash
npm run test:e2e:journeys
## 自动化触发时机
| 触发条件 | 后端 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 │
└──────────────┴──────────────────┴───────────────────┘
```
### 运行所有测试
---
```bash
npm run test:e2e
```
## 快速链接
## 测试数据
| 文档 | 内容 |
|---|---|
| [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 流水线配置 |
测试使用的用户账号:
- 管理员:username: `admin`, password: `Test@123`
- 普通用户:username: `user`, password: `Test@123`
## 测试策略
- **冒烟测试**:每次代码提交时运行,快速反馈
- **核心旅程测试**:PR合并前运行,验证关键业务流程
- **单元测试**:补充功能覆盖率,目标80%
---
## 维护指南
1. 新增核心业务功能时,在 `journeys/` 目录下添加测试
2. 新增基础功能时,在 `smoke/` 目录下添加测试
3. 保持测试文件数量精简,避免重复测试
4. 优先使用单元测试覆盖功能细
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`,同步更新本文档「自动化触发时机」章