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