08ea5fbe98
添加用户管理视图、API和状态管理文件
629 lines
14 KiB
Markdown
629 lines
14 KiB
Markdown
# 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月)
|
||
|
||
- 建立自动化测试平台
|
||
- 实现持续监控
|
||
- 建立质量度量体系
|