一,项目背景与测试概况
1.1 项目背景
随着线上营销活动普及,抽奖系统成为企业拉新、促活的重要工具。本项目为 SpringBoot + MySQL + Redis + RabbitMQ 实现的企业级抽奖系统,支持管理员登录、用户管理、奖品管理、活动创建、在线抽奖、中奖通知等全流程业务。
本次测试目的:验证系统在 Edge/Chrome 浏览器 下的功能正确性、业务规则闭环、数据一致性与稳定性,通过 接口自动化 + 性能压测 提升回归效率,降低重复测试成本。
1.2 测试范围
本次测试覆盖抽奖系统的完整业务生命周期,具体包括:
- 功能测试:登录、用户管理、奖品管理、活动创建、抽奖流程、中奖记录、消息通知
- 界面测试(UI):登录页、管理后台、活动列表、奖品列表、抽奖页面布局与交互
- 接口测试:基于 Pytest 对登录、创建活动、发起抽奖等核心接口自动化测试
- 性能测试:使用 JMeter 对抽奖接口做并发压测、接口响应时间验证
- 中间件测试:Redis 缓存一致性、RabbitMQ 消息可靠性
1.3 需求分析
- 用户模块:登录鉴权、身份校验、手机号 / 密码规则、JWT 令牌有效性
- 奖品模块:图片上传、奖品增删改查、价格 / 数量规则
- 活动模块:活动创建、关联奖品、圈选用户、状态流转
- 抽奖核心:一人只能中一次、奖品数量匹配中奖人数、防重复抽奖、异常回滚
- 通知模块:中奖短信 / 邮件发送、第三方接口异常处理
二,设计测试用例与分析
2.1 测试用例设计方案
2.2 核心模块用例分析
1. 界面测试(UI Test)
针对系统的核心页面(登录页、管理后台首页、活动 / 奖品列表页等),我开展了完整的界面与交互测试,主要覆盖以下维度:
- 布局与一致性测试:验证不同页面间的视觉风格统一性(色彩、字体、间距、按钮样式),确保整体 UI 规范统一;检查页面元素的对齐、间距与排版,无错位、重叠、拉伸变形等问题;验证响应式适配效果,在不同窗口尺寸下布局不会出现错乱或溢出。
- 元素可见性与可用性测试:验证所有关键元素(输入框、按钮、菜单、分页控件)均正常加载、清晰可见,无文字截断或图片加载失败;检查表单占位符、按钮文案、菜单名称的准确性与可读性,无歧义或错误引导。
- 交互体验测试:验证按钮点击、输入框聚焦、Tab 切换等基础交互反馈正常,无点击无响应、重复提交等问题;测试表单提交、页面跳转、菜单切换、分页操作的交互逻辑,确保流程顺畅;检查错误提示、加载状态、空数据状态的展示,保障用户体验友好。
- 兼容性基础验证:针对 Edge/Chrome 主流浏览器进行了基础兼容性测试,确保页面在目标环境下渲染正常,无 CSS 样式错位、交互失效等问题。
2. 用户登录与权限模块
表格
| 序号 | 模块 | 用例标题 | 优先级 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|
| 1 | 登录 | 手机号 + 密码正确登录 | P1 | 输入正确手机号与密码,点击登录 | 登录成功,跳转后台 |
| 2 | 登录 | 手机号 + 验证码正确登录 | P1 | 输入手机号,获取验证码并登录 | 登录成功 |
| 3 | 登录 | 账号 / 密码错误登录 | P2 | 正确手机号 + 错误密码 | 提示错误,登录失败 |
| 4 | 权限 | 未登录访问后台 | P1 | 直接访问管理页 URL | 强制跳转到登录页 |
| 5 | 权限 | 普通用户访问抽奖 | P1 | 普通用户登录,尝试抽奖 | 提示无权限 |
3. 奖品与活动管理模块
表格
| 序号 | 模块 | 用例标题 | 优先级 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|
| 1 | 奖品 | 创建奖品 + 上传图片 | P1 | 填写信息、上传图片提交 | 创建成功,列表显示 |
| 2 | 奖品 | 奖品名称为空 | P2 | 不填名称提交 | 前端拦截,提示必填 |
| 3 | 活动 | 创建活动 + 关联奖品 | P1 | 填写信息、勾选奖品与用户 | 活动创建成功 |
| 4 | 活动 | 修改已结束活动 | P2 | 修改已结束活动信息 | 提示不可修改 |
4. 抽奖核心业务(最重点)
表格
| 序号 | 模块 | 用例标题 | 优先级 | 测试步骤 | 预期结果 |
|---|---|---|---|---|---|
| 1 | 抽奖 | 正常抽奖流程 | P1 | 进行中活动 → 开始抽奖 | 生成中奖名单 |
| 2 | 抽奖 | 一人只能中一次 | P1 | 同一用户多次抽奖 | 仅第一次有效 |
| 3 | 抽奖 | 奖品数量 = 中奖人数 | P1 | 奖品数量 3 → 抽 3 人 | 中奖人数 = 3 |
| 4 | 抽奖 | 刷新页面防重抽 | P1 | 抽奖中刷新 | 已抽结果保留 |
| 5 | 通知 | 中奖短信 / 邮件推送 | P1 |
2.3 自动化测试用例筛选
考虑到回归测试成本,我从上述功能测试中筛选出 5 条核心链路进行自动化实现:管理员注册→管理员登录 → 创建奖品 → 创建活动 →注册用户→ 执行抽奖 → 查看中奖记录这 5 条用例作为系统的 "核心生命线",保障每次版本更新后基础业务流程无退化
三,自动化测试实现
3.1 自动化技术架构
本项目基于 Python + Selenium + Pytest 搭建自动化测试框架,采用行业主流的 POM(Page Object Model)设计模式,将页面元素定位与测试脚本逻辑分离,提升代码可维护性。
- 驱动配置:使用 EdgeOptions 配置浏览器环境,确保在目标浏览器下稳定运行
- 测试管理:利用 Pytest 的 fixture 功能统一处理浏览器初始化与资源回收
- 报告集成:通过 Allure-pytest 插件生成可视化测试报告,支持结果追溯与问题定位