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

抽奖逻辑测试用例

测试环境准备

  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 接口是否正常返回数据