【测试报告】抽奖系统

一、测试目的

  1. 验证系统功能完整性,确保核心业务流程(用户管理、活动创建、抽奖逻辑、中奖通知)正常运行。
  2. 检查系统在高并发场景下的稳定性与性能表现。
  3. 验证数据一致性、安全性及异常处理机制。
  4. 确保接口响应符合预期,满足业务需求。
二、测试环境

环境项配置
操作系统CentOS 7.9 / Windows 10
编程语言Java 17
后端框架Spring Boot 3.0
数据库MySQL 8.0.33
缓存Redis 7.0.8
消息队列RabbitMQ 3.11.2
中间件Nginx 1.20.1
测试工具Postman、JMeter、Selenium
三、测试方法

  1. 功能测试

    • 覆盖用户注册 / 登录、活动创建、奖品管理、抽奖流程、中奖通知等核心功能。
    • 使用 Postman 验证接口逻辑(如/register/draw-prize)。
  2. 接口测试

    • 验证接口返回格式(如CommonResult<T>)、参数校验(如@Validated)。
    • 测试接口幂等性(如重复提交抽奖请求)。
  3. 性能测试

    • 使用 JMeter 模拟高并发场景(500 + 用户同时抽奖),监控响应时间、吞吐量。
  4. 安全测试

    • 验证 JWT 认证机制(拦截器强制登录)、敏感数据加密(AES 加密手机号)。
    • 检查 SQL 注入、XSS 攻击防护。
  5. 异常处理测试

    • 模拟网络中断、参数缺失、重复操作等异常场景,验证系统容错能力。
四、关键测试用例

测试项测试步骤预期结果实际结果
用户注册1. 填写合法信息提交
2. 重复提交相同邮箱 / 手机号
1. 返回成功响应
2. 提示 “邮箱 / 手机号已被使用”
符合预期
管理员登录1. 使用密码 / 验证码登录
2. 未携带 token 访问受限页面
1. 成功获取 token
2. 跳转至登录页
符合预期
活动创建1. 关联奖品和人员
2. 提交空奖品或人员列表
1. 活动创建成功
2. 提示 “奖品 / 人员信息不能为空”
符合预期
抽奖流程1. 发起抽奖请求
2. 刷新页面后重试
1. 异步返回成功
2. 避免重复抽奖
符合预期
中奖通知1. 中奖后检查短信 / 邮件
2. 修改通知模板参数
1. 收到通知
2. 内容包含正确信息
符合预期
高并发抽奖使用 JMeter 模拟 500 用户并发请求系统无崩溃,响应时间 < 500ms响应时间平均 420ms,无异常
异常回滚1. 抽奖过程中终止 MQ 服务
2. 检查数据库状态
1. 消息转入死信队列
2. 数据回滚至初始状态
符合预期
五、缺陷记录

缺陷编号缺陷描述严重程度修复状态修复方案
L-001活动创建时未校验奖品库存与中奖人数匹配已修复添加参数校验逻辑,确保prizeAmount >= winnerList.size()
L-002高并发下 Redis 缓存未及时更新,导致抽奖结果展示延迟已修复优化缓存更新策略,增加失效时间(TTL)
L-003抽奖页面未限制管理员操作,普通用户可通过 URL 访问已修复在拦截器中增加身份校验(identity=ADMIN
六、测试结论

  1. 功能完整性:核心功能(用户管理、活动创建、抽奖流程)运行稳定,接口响应符合设计预期。
  2. 性能表现:支持 500 + 用户并发抽奖,响应时间平均 420ms,系统无内存泄漏或崩溃。
  3. 安全性:JWT 认证、敏感数据加密、异常回滚机制有效保障系统安全。
  4. 改进建议
    • 增加自动化测试覆盖率(单元测试、集成测试)。
    • 优化数据库索引(如activity_prize表的activity_id字段)。
    • 完善监控报警机制(如 MQ 消息积压监控)。

测试人员:王千羽
测试日期:2025-02-17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值