# 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月) - 建立自动化测试平台 - 实现持续监控 - 建立质量度量体系