奖池派对自动化测试方案与实践报告

一、项目背景

被测对象是一个抽奖管理系统,部署在 http://1.14.192.17:8080/。支持管理员登录、人员管理、活动管理、奖品管理、抽奖与中奖记录等功能。

1、 测试范围

本次测试涵盖了抽奖系统的核心生命周期,具体包括:

• 功能测试:验证注册、登录、奖品创建、活动创建及抽奖等业务逻辑。

• 界面测试 (UI):检查注册,登录,奖品列表页面的布局与交互。

• 接口测试:利用 Postman 针对活动创建等核心接口进行协议级校验。

• 自动化测试:基于 Pytest + Selenium 实现核心高频场景的自动化回归。

2、 需求分析

  1. 登录/认证模块
  • 密码登录:正常登录、错误密码、空字段、不存在的账号

  • 邮箱验证码登录:验证码为空、未获取验证码直接输入

  • 权限校验:未登录访问需认证接口(越权检测)

  1. 用户模块(管理员管理普通用户)
  • 注册:正常注册(管理员/普通用户)、空字段、重复手机号/邮箱

  • 安全边界:XSS 注入、超长名称、特殊字符

  • 人员列表:分页查询、无权限访问

  1. 奖品模块
  • 创建奖品:正常创建、名称为空、价格为负数(未校验 BUG)、图片上传

  • 奖品列表:分页查询、page=0 边界(SQL 泄露 BUG)

  1. 活动链路
  • 创建活动:正常创建、空字段、不存在的奖品/人员关联

  • 活动列表:分页组件浏览

  • 活动详情:正常查询、activityId=0/-1

  1. 抽奖核心链路
  • 执行抽奖:缺少参数拒绝、不存在的活动 ID

  • 中奖记录:正常查询、不存在的活动、越权访问

二、设计测试用例

1.功能测试---验证每个接口的请求/响应逻辑是否正确

2.界面测试---验证页面元素可见、表单填写、弹窗交互

  1. 兼容性--- 用 Selenium Grid 或不同 WebDriver 跑 Firefox/Edge,确认核心流程不因浏览器差异而失败

  2. 性能测试---抽奖活动场景下多人同时抽奖的并发情况,用 Locust 或 JMeter 压一下抽奖接口

  3. 安全性测试 ---隐私数据是否明文显示,参数未校验导致sql注入,越权操作等

接下来主要讲自动化测试项目基于 pytest 框架,采用接口自动化(API)+ 浏览器自动化(GUI) 双层覆盖策略。

1、功能测试

验证每个接口的请求/响应逻辑是否正确

1. 登录 /blogin.html

文件: test_blogin.py --- 2 个接口,15 条用例

2. 注册 /register

文件: test_register.py --- 1 个接口,10 条用例

3. 人员列表 /base-user/find-list

文件: test_list.py --- 1 个接口,2 条用例

4. 活动列表 /activity/find-list

文件: test_activity_list.py --- 1 个接口,3 条用例

5. 创建活动 /activity/create

文件: test_activity_create.py --- 1 个接口,10 条用例

6. 奖品列表 /prize/find-list

文件: test_prize_list.py --- 1 个接口,3 条用例

7. 创建奖品 /prize/create(multipart/form-data)

文件: test_prize_create.py --- 1 个接口,9 条用例

8. 抽奖相关(3 个接口)

文件: test_draw.py --- 3 个接口,11 条用例

/activity-detail/find GET 4个用例

复制代码
/winning-records/show POST  4个用例
复制代码
/winning-records/show POST  3个用例

2、界面测试

1. 登录页 blogin.html

文件: test_login.py --- 1 个页面,8 条用例

2. 活动管理

​​​​​activities-list.html / create-activity.html

复制代码
文件: test_activity.py — 2 个页面,5 条用例

3. 奖品管理 prizes-list.html / create-prizes.html

4. 抽奖页面 activities-list.html / user-list.html

三、测试统计

1.缺陷统计

复制代码
发现的 BUG 汇总

1. 注册接口 XSS 脚本未过滤(存储型 XSS)
2. 活动/奖品列表 currentPage=0 暴露 SQL 语法错误和表结构 
3. 活动详情 activityId=0/-1 暴露完整 SQL 异常堆栈 
4. 邮箱+未获取验证码+输入验证码错误暴露 NPE 空指针异常
5. Emoji 名称导致 SQL 字符集异常
6. 超长名称暴露 SQL Data truncation
7. 不存在的活动 ID 抽奖返回 200
8. 奖品价格为负数未校验,可成功入库
相关推荐
hboot11 小时前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
用户83562907805116 小时前
使用 Python 自动化 PowerPoint 形状布局与格式设置
后端·python
用户83562907805118 小时前
用 Python 自动化 PowerPoint 演讲者备注添加
后端·python
黄忠1 天前
01-系统架构设计-LangGraph状态机与多源异构RAG
python
zzzzzz3101 天前
假如我是掘金管理员,我先给评论区装个'代码审查'系统
python·程序员·机器人
砍材农夫1 天前
python环境|conda安装和使用(2)
后端·python
程序员龙叔2 天前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
用户8356290780512 天前
使用 Python 操作 Word 内容控件
后端·python
码云骑士2 天前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python