# 抽奖逻辑测试用例 ## 测试环境准备 1. 确保后端服务正常运行 2. 确保以下接口可用: - `/prize/list` - 获取奖品列表 - `/user/list` - 获取用户列表 - `/lottery/draw` - 抽奖接口(新增) ## 测试用例 ### 测试用例1:正常抽奖流程 **测试步骤:** 1. 打开抽奖页面 2. 点击"进入抽奖"按钮 3. 点击"开始抽奖"按钮 4. 点击"结束抽奖"按钮 5. 观察抽奖结果 **预期结果:** - 页面正常加载,显示奖品列表和用户卡片 - 抽奖动画正常播放 - 后端返回中奖用户数据 - 3D卡片正确显示中奖用户信息(jwcode和username) ### 测试用例2:后端接口异常处理 **测试步骤:** 1. 模拟后端抽奖接口返回错误 2. 执行抽奖流程 3. 观察系统行为 **预期结果:** - 系统自动回退到前端随机抽奖逻辑 - 抽奖功能不中断 - 控制台显示错误日志 ### 测试用例3:数据格式兼容性 **测试步骤:** 1. 使用新数据格式:`{ jwcode: "5412", username: "猪八戒22" }` 2. 使用旧数据格式:`["5412", "猪八戒22", "PSST"]` 3. 观察显示效果 **预期结果:** - 两种数据格式都能正确显示 - 卡片内容包含jwcode和username信息 ### 测试用例4:多轮抽奖 **测试步骤:** 1. 完成第一轮抽奖 2. 继续第二轮抽奖 3. 观察轮次信息是否正确传递 **预期结果:** - 每轮抽奖都请求后端 - 轮次信息正确递增 - 中奖用户不重复 ### 测试用例5:奖品切换 **测试步骤:** 1. 完成当前奖品的所有轮次抽奖 2. 观察是否自动切换到下一个奖品 3. 验证新奖品的抽奖逻辑 **预期结果:** - 奖品自动切换 - 新奖品的抽奖参数正确传递 - 轮次重新开始计算 ## 调试信息 在浏览器控制台中查看以下日志: 1. **用户数据加载:** ``` userList {data: Array(5)} ``` 2. **抽奖请求:** ``` 请求后端抽奖,参数: {gradeName: "一等奖", prizeName: "iPhone 15", perWin: 5, round: 1} ``` 3. **后端返回结果:** ``` 后端抽奖返回结果: {data: Array(5)} 后端返回的中奖用户: [{jwcode: "5412", username: "猪八戒22"}, ...] ``` 4. **卡片选择:** ``` executeLottery - selectedCardIndex: [12, 34, 56, 78, 90] executeLottery - currentLuckys: [{jwcode: "5412", username: "猪八戒22"}, ...] ``` ## 常见问题排查 ### 问题1:抽奖接口404错误 **解决方案:** 检查后端是否实现了 `/lottery/draw` 接口 ### 问题2:数据格式不匹配 **解决方案:** 检查后端返回的数据格式是否符合 `{data: [{jwcode: "xxx", username: "xxx"}]}` ### 问题3:用户数据为空 **解决方案:** 检查 `/user/list` 接口是否正常返回数据 ### 问题4:奖品数据为空 **解决方案:** 检查 `/prize/list` 接口是否正常返回数据