当前位置: 首页 > news >正文

幸运之轮系统测试报告

测试报告文档:幸运之轮系统

一、测试背景

本项目为基于 Spring Boot 开发的企业级抽奖系统,支持用户管理、奖品配置、抽奖活动管理与中奖结果通知等功能模块。系统使用 MySQL 存储核心数据,Redis 进行缓存优化,RabbitMQ 实现异步解耦。本文档从功能测试、接口测试、性能测试、安全性测试和自动化测试五个维度出发,对项目进行全面测试。


二、测试环境

  • 操作系统:Windows 10 / CentOS 7
  • 测试浏览器:Chrome 123、edge
  • JDK版本:JDK 17
  • 数据库:MySQL 6.0
  • 缓存:Redis 4.0
  • 消息队列:RabbitMQ 3.11
  • 项目框架:Spring Boot 3.x
  • 测试工具:Postman、JMeter、Selenium、XMind、Junit

三、测试范围

  • 用户注册与登录模块
  • 奖品管理模块
  • 用户管理模块
  • 抽奖活动配置与执行模块
  • 中奖结果与通知模块

四、测试用例设计(部分核心功能)

1. 登录测试
用例编号测试项输入预期结果
TC-001正确登录正确手机号+正确密码返回登录成功,JWT Token 生效
TC-002密码错误正确手机号+错误密码返回登录失败,提示“密码错误”
TC-003手机号为空空+任意密码返回“手机号不能为空”
TC-004密码为空正确手机号+空返回“密码不能为空”
TC-005未注册用户登录随机手机号+任意密码返回“用户不存在”
2. 新增奖品测试
用例编号测试项输入参数预期结果
TC-101正常添加奖品奖品名:耳机,数量:5,等级:3返回“添加成功”,数据库新增记录
TC-102数量为负值数量:-1返回“奖品数量不能为负”
TC-103奖品名为空空名+任意数量返回“奖品名称不能为空”
TC-104奖品等级非法奖品等级:10返回“奖品等级需为1~5之间”
3. 新增用户测试
用例编号测试项输入参数预期结果
TC-201正常新增用户手机号:13900000001,昵称:张三返回“新增成功”,数据写入成功
TC-202手机号格式错误手机号:123456返回“手机号格式非法”
TC-203昵称为空手机号正确,昵称为空返回“昵称不能为空”
4. 新增抽奖活动测试
用例编号测试项输入参数预期结果
TC-301正常添加活动活动名:年会抽奖,时间正常返回“活动创建成功”,状态为未开始
TC-302活动名为空返回“活动名称不能为空”
TC-303活动时间非法开始时间 > 结束时间返回“活动时间设置有误”
5. 抽奖执行测试
用例编号测试项输入参数预期结果
TC-401正常抽奖登录用户、活动进行中返回中奖信息/未中奖提示
TC-402非活动时间抽奖活动未开始或已结束返回“活动未开始/已结束”
TC-403已中奖重复抽奖用户已中奖再次抽奖返回“您已中奖,无法再次抽奖”

五、接口测试

使用 Postman 对以下接口进行验证:

  • /user/register 注册接口
  • /user/login 登录接口
  • /prize/add 添加奖品
  • /activity/create 新增活动
  • /lottery/draw 发起抽奖

接口测试内容包括:

  • 正确响应结构(code/msg/data)
  • 鉴权 token 是否校验成功
  • 请求参数边界与异常输入处理

六、性能测试

工具:JMeter

  • 抽奖接口 /lottery/draw
    • 并发用户数:100, 500, 1000
    • 响应时间控制在 300ms 以内
    • TPS 保持在 200+,99% 响应时间 < 500ms

七、安全性测试

  • 未登录访问 /admin/** 路由 → 返回未授权
  • 非管理员用户调用后台新增接口 → 拦截
  • 明文提交手机号/密码 → 校验数据库是否加密存储

八、自动化测试脚本(Selenium + Java 示例)

WebDriver driver = new ChromeDriver();
driver.get("http://localhost:8080/login");WebElement phoneInput = driver.findElement(By.id("phone"));
WebElement passwordInput = driver.findElement(By.id("password"));
WebElement loginButton = driver.findElement(By.id("login-button"));phoneInput.sendKeys("13900000001");
passwordInput.sendKeys("test123456");
loginButton.click();Thread.sleep(2000);
WebElement userNameDisplay = driver.findElement(By.id("nickname"));
Assert.assertEquals("张三", userNameDisplay.getText());
driver.quit();

九、缺陷记录(示例)

编号问题描述严重程度状态
001抽奖页面刷新后状态丢失已修复
002奖品数量为负仍可提交已修复
003非法手机号可注册已修复

十、测试结论

本次测试覆盖主要功能模块,接口响应结构规范,系统在中高并发下保持稳定,具备良好的安全机制与错误处理能力。建议上线前补充异常恢复测试和缓存穿透场景验证。

相关文章:

  • C++基础:模拟实现vector(有存在深层次的浅拷贝问题)
  • 2G Nand Jlink烧录报错Failed to allocated 0x1B000000 bytes of memory!
  • DeepSeek R1 与 V3 的全面对比,两个版本有什么差别?
  • YOLOv8性能提升:引入华为GhostNetv1特征提取网络
  • 491. Non-decreasing Subsequences
  • C++ 模板元编程语法大全
  • 主题阅读输出-关于成年/成熟的认识-01-学习
  • 6.2 Q1|哈尔滨医科大学GBD发文 | 1990 年至 2019 年颗粒物污染导致的中风全球趋势和负担
  • 数据标注对于模型训练的重要性
  • 自动点焊机如何适应不同厚度的材料焊接?
  • Java、Python、PHP 三种语言实现 二进制与十六进制的相互转换
  • keepalived两台设备同时出现VIP问题
  • MS3494模拟矩阵开关
  • 硬盘驱动器习题解析
  • 【Docker】技术架构演进
  • 多态 向上转型
  • 红棉花板材亮相德国科隆展 东方智造赋能全球家居未来
  • 如何使用 Python 的胶水语言特性
  • 涨薪技术|0到1学会性能测试第88课-Web_service_call函数
  • 国产SOC有哪些?
  • 软件开发学习路线/重庆高端seo
  • 学校网站建设介绍/互联网营销的方式有哪些
  • 品牌网站制作流程/手机优化大师下载安装
  • 淘宝客不建立网站怎么做/seo程序专员
  • 淄博高端网站建设公司/竞价推广什么意思
  • 商务网站设计素材/公司品牌宣传方案