You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# 抽奖逻辑测试用例
## 测试环境准备
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` 接口是否正常返回数据
|