Files
everything-is-suitable/docs/uniapp-e2e-testing-plan.md
T
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

629 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Uniapp E2E测试方案
## 项目概述
本方案为everything-is-suitable项目提供全面的端到端(E2E)测试解决方案,覆盖Uniapp客户端、Admin管理后台和API后端三个核心模块。
## 测试架构
### 系统架构
```
┌─────────────────┐
│ Uniapp Client │ (H5: http://localhost:8081)
└────────┬────────┘
┌─────────────────┐
│ API Backend │ (http://127.0.0.1:8080)
└─────────────────┘
┌────────┬────────┐
│ Admin │ Test │ (Admin: http://localhost:5174)
└─────────┴────────┘
```
### 测试框架
1. **Uniapp测试**: TypeScript + Playwright
2. **Admin测试**: TypeScript + Playwright
3. **API测试**: Python + Pytest
4. **综合测试**: Python + Playwright
## 测试环境配置
### 环境要求
- Node.js >= 18.0.0
- Python >= 3.13
- Java >= 17
- Maven >= 3.8
### 端口配置
| 服务 | 端口 | URL |
|------|------|-----|
| API Backend | 8080 | http://127.0.0.1:8080 |
| Uniapp H5 | 8081 | http://localhost:8081 |
| Admin | 5174 | http://localhost:5174 |
| Playwright UI | 9323 | http://localhost:9323 |
### 启动顺序
1. 启动API Backend(使用local配置)
2. 启动Uniapp H5服务
3. 启动Admin服务
4. 执行E2E测试
## 测试范围
### 1. Uniapp客户端测试
#### 1.1 页面导航测试
- **TC-001**: 底部导航栏切换测试
- 切换到日历页面
- 切换到黄历页面
- 切换到用户中心页面
- 切换到AIGC页面
- **TC-002**: 页面路由测试
- 从首页导航到日历页面
- 从日历页面导航到黄历页面
- 从黄历页面导航到用户中心页面
#### 1.2 日历功能测试
- **TC-003**: 日历页面加载测试
- 验证日历视图可见
- 验证月份显示正确
- 验证农历信息显示
- **TC-004**: 月份切换测试
- 切换到上个月
- 切换到下个月
- 验证月份显示更新
- **TC-005**: 日期选择测试
- 选择特定日期
- 验证选中状态
- 验证农历信息更新
- **TC-006**: 农历信息显示测试
- 验证农历日期显示
- 验证节气信息显示
- 验证生肖信息显示
#### 1.3 黄历功能测试
- **TC-007**: 黄历页面加载测试
- 验证黄历视图可见
- 验证日期显示正确
- 验证宜忌信息显示
- **TC-008**: 黄历日期切换测试
- 切换到前一天
- 切换到后一天
- 验证黄历信息更新
- **TC-009**: 宜忌信息显示测试
- 验证宜事项显示
- 验证忌事项显示
- 验证事项分类正确
- **TC-010**: 时辰信息显示测试
- 验证时辰列表显示
- 验证时辰吉凶信息
- 验证时辰吉神凶煞
#### 1.4 用户中心测试
- **TC-011**: 用户信息显示测试
- 验证用户头像显示
- 验证用户名显示
- 验证用户状态显示
- **TC-012**: 菜单导航测试
- 点击设置菜单
- 点击关于菜单
- 点击帮助菜单
- **TC-013**: 登录功能测试
- 打开登录弹窗
- 输入用户名和密码
- 点击登录按钮
- 验证登录成功
#### 1.5 AIGC功能测试
- **TC-014**: AIGC页面加载测试
- 验证AIGC视图可见
- 验证输入框显示
- 验证生成按钮显示
- **TC-015**: 内容生成测试
- 输入提示词
- 点击生成按钮
- 验证生成结果
#### 1.6 数据加载测试
- **TC-016**: 黄历数据加载测试
- 验证黄历数据加载
- 验证加载状态显示
- 验证错误处理
- **TC-017**: 日历数据加载测试
- 验证日历数据加载
- 验证加载状态显示
- 验证错误处理
#### 1.7 状态更新测试
- **TC-018**: 选中日期状态更新测试
- 选择日期
- 验证选中状态更新
- 验证相关数据更新
- **TC-019**: 导航栏状态更新测试
- 切换页面
- 验证导航栏状态更新
- 验证页面标题更新
#### 1.8 边界条件测试
- **TC-020**: 月份边界测试
- 切换到1月
- 切换到12月
- 验证跨年切换
- **TC-021**: 日期边界测试
- 选择月初日期
- 选择月末日期
- 验证日期范围
- **TC-022**: 表单验证测试
- 测试空输入
- 测试无效输入
- 验证错误提示
#### 1.9 响应式布局测试
- **TC-023**: 桌面端布局测试
- 验证桌面端布局正常
- 验证元素位置正确
- **TC-024**: 平板端布局测试
- 验证平板端布局正常
- 验证元素位置正确
- **TC-025**: 移动端布局测试
- 验证移动端布局正常
- 验证元素位置正确
### 2. Admin管理后台测试
#### 2.1 用户登录测试
- **TC-026**: 正常登录测试
- 输入正确的用户名和密码
- 点击登录按钮
- 验证登录成功并跳转到仪表盘
- **TC-027**: 错误密码登录测试
- 输入正确的用户名和错误的密码
- 点击登录按钮
- 验证登录失败并显示错误提示
- **TC-028**: 空用户名登录测试
- 不输入用户名
- 点击登录按钮
- 验证显示验证错误
- **TC-029**: 空密码登录测试
- 不输入密码
- 点击登录按钮
- 验证显示验证错误
- **TC-030**: 用户名长度边界测试
- 输入超长用户名
- 点击登录按钮
- 验证显示验证错误
- **TC-031**: Token自动刷新测试
- 登录成功
- 等待Token接近过期
- 验证Token自动刷新
#### 2.2 用户管理测试
- **TC-032**: 创建新用户测试
- 点击新增用户按钮
- 填写用户信息
- 点击保存按钮
- 验证用户创建成功
- **TC-033**: 编辑用户信息测试
- 点击编辑按钮
- 修改用户信息
- 点击保存按钮
- 验证用户信息更新成功
- **TC-034**: 删除用户测试
- 点击删除按钮
- 确认删除
- 验证用户删除成功
- **TC-035**: 搜索用户测试
- 输入搜索关键词
- 点击搜索按钮
- 验证搜索结果正确
- **TC-036**: 封禁用户测试
- 点击封禁按钮
- 选择封禁类型
- 填写封禁原因
- 点击确认按钮
- 验证用户封禁成功
- **TC-037**: 解封用户测试
- 点击解封按钮
- 填写解封原因
- 点击确认按钮
- 验证用户解封成功
- **TC-038**: 重复用户名测试
- 创建用户时使用已存在的用户名
- 点击保存按钮
- 验证显示错误提示
- **TC-039**: 邮箱格式验证测试
- 输入无效邮箱格式
- 点击保存按钮
- 验证显示验证错误
- **TC-040**: 手机号格式验证测试
- 输入无效手机号格式
- 点击保存按钮
- 验证显示验证错误
- **TC-041**: 密码强度验证测试
- 输入弱密码
- 点击保存按钮
- 验证显示验证错误
- **TC-042**: 分页边界测试
- 测试第一页
- 测试最后一页
- 测试分页切换
- **TC-043**: 搜索结果为空测试
- 搜索不存在的用户
- 验证显示空状态
#### 2.3 权限控制测试
- **TC-044**: 未登录访问重定向测试
- 未登录时访问受保护页面
- 验证重定向到登录页面
- **TC-045**: 有权限访问测试
- 使用有权限的用户登录
- 访问受保护页面
- 验证访问成功
- **TC-046**: 无权限访问测试
- 使用无权限的用户登录
- 访问受保护页面
- 验证显示权限不足提示
- **TC-047**: Token过期自动跳转测试
- 设置Token过期
- 访问受保护页面
- 验证自动跳转到登录页面
#### 2.4 集成测试
- **TC-048**: 完整业务流程测试
- 登录
- 创建用户
- 分配角色
- 验证权限
- **TC-049**: 跨模块导航测试
- 从用户管理导航到角色管理
- 从角色管理导航到菜单管理
- 验证导航正常
### 3. API后端测试
#### 3.1 认证API测试
- **TC-050**: 登录API测试
- 发送登录请求
- 验证返回Token
- 验证Token格式正确
- **TC-051**: 登出API测试
- 发送登出请求
- 验证登出成功
- **TC-052**: Token刷新API测试
- 发送Token刷新请求
- 验证返回新Token
#### 3.2 用户管理API测试
- **TC-053**: 获取用户列表API测试
- 发送获取用户列表请求
- 验证返回用户列表
- 验证分页参数正确
- **TC-054**: 获取用户详情API测试
- 发送获取用户详情请求
- 验证返回用户详情
- 验证数据完整性
- **TC-055**: 创建用户API测试
- 发送创建用户请求
- 验证创建成功
- 验证返回用户ID
- **TC-056**: 更新用户API测试
- 发送更新用户请求
- 验证更新成功
- 验证数据更新
- **TC-057**: 删除用户API测试
- 发送删除用户请求
- 验证删除成功
- 验证用户不存在
- **TC-058**: 封禁用户API测试
- 发送封禁用户请求
- 验证封禁成功
- 验证封禁状态
- **TC-059**: 解封用户API测试
- 发送解封用户请求
- 验证解封成功
- 验证解封状态
#### 3.3 日历API测试
- **TC-060**: 获取日历数据API测试
- 发送获取日历数据请求
- 验证返回日历数据
- 验证农历信息正确
- **TC-061**: 获取黄历数据API测试
- 发送获取黄历数据请求
- 验证返回黄历数据
- 验证宜忌信息正确
#### 3.4 运势API测试
- **TC-062**: 获取每日运势API测试
- 发送获取每日运势请求
- 验证返回运势数据
- 验证运势信息完整
- **TC-063**: 获取每月运势API测试
- 发送获取每月运势请求
- 验证返回运势数据
- 验证运势信息完整
- **TC-064**: 获取每年运势API测试
- 发送获取每年运势请求
- 验证返回运势数据
- 验证运势信息完整
#### 3.5 紫微斗数API测试
- **TC-065**: 获取紫微斗数排盘API测试
- 发送获取紫微斗数排盘请求
- 验证返回排盘数据
- 验证星位信息正确
- **TC-066**: 获取宫位运势API测试
- 发送获取宫位运势请求
- 验证返回运势数据
- 验证宫位信息完整
#### 3.6 安全测试
- **TC-067**: SQL注入防护测试
- 发送包含SQL注入的请求
- 验证请求被拒绝
- 验证无数据泄露
- **TC-068**: XSS防护测试
- 发送包含XSS的请求
- 验证请求被拒绝
- 验证无脚本执行
- **TC-069**: CSRF防护测试
- 发送CSRF攻击请求
- 验证请求被拒绝
- 验证CSRF Token验证
#### 3.7 性能测试
- **TC-070**: API响应时间测试
- 测试各API响应时间
- 验证响应时间在合理范围内
- **TC-071**: 并发请求测试
- 发送并发请求
- 验证系统稳定性
- 验证响应正确性
- **TC-072**: 大数据量测试
- 请求大数据量
- 验证系统处理能力
- 验证分页功能
### 4. 综合集成测试
#### 4.1 端到端业务流程测试
- **TC-073**: 用户注册到登录流程
- Uniapp用户注册
- Admin审核用户
- Uniapp用户登录
- **TC-074**: 日历查询到运势查看流程
- Uniapp查询日历
- API返回日历数据
- Uniapp显示运势信息
- **TC-075**: 黄历查询到宜忌查看流程
- Uniapp查询黄历
- API返回黄历数据
- Uniapp显示宜忌信息
- **TC-076**: 紫微斗数排盘到运势分析流程
- Uniapp输入出生信息
- API返回紫微斗数排盘
- Uniapp显示运势分析
#### 4.2 跨模块数据一致性测试
- **TC-077**: 用户数据一致性测试
- Admin创建用户
- Uniapp查询用户
- 验证数据一致
- **TC-078**: 日历数据一致性测试
- API更新日历数据
- Uniapp查询日历
- 验证数据一致
- **TC-079**: 运势数据一致性测试
- API更新运势数据
- Uniapp查询运势
- 验证数据一致
#### 4.3 异常场景测试
- **TC-080**: 网络异常处理测试
- 模拟网络断开
- 验证错误处理
- 验证重试机制
- **TC-081**: 服务异常处理测试
- 模拟API服务异常
- 验证错误处理
- 验证降级策略
- **TC-082**: 数据异常处理测试
- 模拟数据异常
- 验证错误处理
- 验证数据校验
## 测试执行计划
### 阶段1: 单元测试(1天)
- 执行Uniapp单元测试
- 执行Admin单元测试
- 执行API单元测试
### 阶段2: 集成测试(2天)
- 执行Uniapp集成测试
- 执行Admin集成测试
- 执行API集成测试
### 阶段3: 端到端测试(3天)
- 执行Uniapp E2E测试
- 执行Admin E2E测试
- 执行综合集成测试
### 阶段4: 回归测试(1天)
- 修复问题后重新测试
- 验证所有测试通过
- 生成测试报告
## 测试报告
### 报告内容
1. 测试执行摘要
2. 测试用例统计
3. 测试覆盖率分析
4. 失败测试详情
5. 问题分类统计
6. 修复建议
7. 后续行动计划
### 报告格式
- HTML报告(Playwright
- JSON报告(自动化)
- Markdown报告(文档)
- PDF报告(归档)
## 成功标准
### 功能完整性
- ✅ 所有核心功能测试通过
- ✅ 所有API测试通过
- ✅ 所有集成测试通过
### 性能要求
- ✅ API响应时间 < 500ms
- ✅ 页面加载时间 < 2s
- ✅ 并发请求支持 > 100/s
### 稳定性要求
- ✅ 测试通过率 > 95%
- ✅ 无P0级别问题
- ✅ 无安全漏洞
## 风险评估
### 高风险
- API服务不稳定
- 数据不一致
- 权限控制缺陷
### 中风险
- 性能不达标
- 兼容性问题
- 用户体验问题
### 低风险
- UI细节问题
- 文档不完整
- 日志不详细
## 后续优化
### 短期优化(1周)
- 修复高优先级问题
- 优化测试用例
- 完善测试报告
### 中期优化(1月)
- 建立CI/CD流程
- 增加测试覆盖率
- 优化性能
### 长期优化(3月)
- 建立自动化测试平台
- 实现持续监控
- 建立质量度量体系