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.

112 lines
2.8 KiB

4 weeks ago
  1. # 抽奖逻辑测试用例
  2. ## 测试环境准备
  3. 1. 确保后端服务正常运行
  4. 2. 确保以下接口可用:
  5. - `/prize/list` - 获取奖品列表
  6. - `/user/list` - 获取用户列表
  7. - `/lottery/draw` - 抽奖接口(新增)
  8. ## 测试用例
  9. ### 测试用例1:正常抽奖流程
  10. **测试步骤:**
  11. 1. 打开抽奖页面
  12. 2. 点击"进入抽奖"按钮
  13. 3. 点击"开始抽奖"按钮
  14. 4. 点击"结束抽奖"按钮
  15. 5. 观察抽奖结果
  16. **预期结果:**
  17. - 页面正常加载,显示奖品列表和用户卡片
  18. - 抽奖动画正常播放
  19. - 后端返回中奖用户数据
  20. - 3D卡片正确显示中奖用户信息(jwcode和username)
  21. ### 测试用例2:后端接口异常处理
  22. **测试步骤:**
  23. 1. 模拟后端抽奖接口返回错误
  24. 2. 执行抽奖流程
  25. 3. 观察系统行为
  26. **预期结果:**
  27. - 系统自动回退到前端随机抽奖逻辑
  28. - 抽奖功能不中断
  29. - 控制台显示错误日志
  30. ### 测试用例3:数据格式兼容性
  31. **测试步骤:**
  32. 1. 使用新数据格式:`{ jwcode: "5412", username: "猪八戒22" }`
  33. 2. 使用旧数据格式:`["5412", "猪八戒22", "PSST"]`
  34. 3. 观察显示效果
  35. **预期结果:**
  36. - 两种数据格式都能正确显示
  37. - 卡片内容包含jwcode和username信息
  38. ### 测试用例4:多轮抽奖
  39. **测试步骤:**
  40. 1. 完成第一轮抽奖
  41. 2. 继续第二轮抽奖
  42. 3. 观察轮次信息是否正确传递
  43. **预期结果:**
  44. - 每轮抽奖都请求后端
  45. - 轮次信息正确递增
  46. - 中奖用户不重复
  47. ### 测试用例5:奖品切换
  48. **测试步骤:**
  49. 1. 完成当前奖品的所有轮次抽奖
  50. 2. 观察是否自动切换到下一个奖品
  51. 3. 验证新奖品的抽奖逻辑
  52. **预期结果:**
  53. - 奖品自动切换
  54. - 新奖品的抽奖参数正确传递
  55. - 轮次重新开始计算
  56. ## 调试信息
  57. 在浏览器控制台中查看以下日志:
  58. 1. **用户数据加载:**
  59. ```
  60. userList {data: Array(5)}
  61. ```
  62. 2. **抽奖请求:**
  63. ```
  64. 请求后端抽奖,参数: {gradeName: "一等奖", prizeName: "iPhone 15", perWin: 5, round: 1}
  65. ```
  66. 3. **后端返回结果:**
  67. ```
  68. 后端抽奖返回结果: {data: Array(5)}
  69. 后端返回的中奖用户: [{jwcode: "5412", username: "猪八戒22"}, ...]
  70. ```
  71. 4. **卡片选择:**
  72. ```
  73. executeLottery - selectedCardIndex: [12, 34, 56, 78, 90]
  74. executeLottery - currentLuckys: [{jwcode: "5412", username: "猪八戒22"}, ...]
  75. ```
  76. ## 常见问题排查
  77. ### 问题1:抽奖接口404错误
  78. **解决方案:** 检查后端是否实现了 `/lottery/draw` 接口
  79. ### 问题2:数据格式不匹配
  80. **解决方案:** 检查后端返回的数据格式是否符合 `{data: [{jwcode: "xxx", username: "xxx"}]}`
  81. ### 问题3:用户数据为空
  82. **解决方案:** 检查 `/user/list` 接口是否正常返回数据
  83. ### 问题4:奖品数据为空
  84. **解决方案:** 检查 `/prize/list` 接口是否正常返回数据