一、项目背景被测对象是一个抽奖管理系统部署在 http://1.14.192.17:8080/。支持管理员登录、人员管理、活动管理、奖品管理、抽奖与中奖记录等功能。1、 测试范围本次测试涵盖了抽奖系统的核心生命周期具体包括• 功能测试验证注册、登录、奖品创建、活动创建及抽奖等业务逻辑。• 界面测试 (UI)检查注册登录奖品列表页面的布局与交互。• 接口测试利用 Postman 针对活动创建等核心接口进行协议级校验。• 自动化测试基于 Pytest Selenium 实现核心高频场景的自动化回归。2、 需求分析1. 登录/认证模块- 密码登录正常登录、错误密码、空字段、不存在的账号- 邮箱验证码登录验证码为空、未获取验证码直接输入- 权限校验未登录访问需认证接口越权检测2. 用户模块管理员管理普通用户- 注册正常注册管理员/普通用户、空字段、重复手机号/邮箱- 安全边界XSS 注入、超长名称、特殊字符- 人员列表分页查询、无权限访问3. 奖品模块- 创建奖品正常创建、名称为空、价格为负数未校验 BUG、图片上传- 奖品列表分页查询、page0 边界SQL 泄露 BUG4. 活动链路- 创建活动正常创建、空字段、不存在的奖品/人员关联- 活动列表分页组件浏览- 活动详情正常查询、activityId0/-15. 抽奖核心链路- 执行抽奖缺少参数拒绝、不存在的活动 ID- 中奖记录正常查询、不存在的活动、越权访问二、设计测试用例1.功能测试---验证每个接口的请求/响应逻辑是否正确2.界面测试---验证页面元素可见、表单填写、弹窗交互3. 兼容性--- 用 Selenium Grid 或不同 WebDriver 跑 Firefox/Edge确认核心流程不因浏览器差异而失败4. 性能测试---抽奖活动场景下多人同时抽奖的并发情况用 Locust 或 JMeter 压一下抽奖接口5. 安全性测试 ---隐私数据是否明文显示参数未校验导致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/createmultipart/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.html4. 抽奖页面 activities-list.html / user-list.html三、测试统计1.缺陷统计发现的 BUG 汇总 1. 注册接口 XSS 脚本未过滤存储型 XSS 2. 活动/奖品列表 currentPage0 暴露 SQL 语法错误和表结构 3. 活动详情 activityId0/-1 暴露完整 SQL 异常堆栈 4. 邮箱未获取验证码输入验证码错误暴露 NPE 空指针异常 5. Emoji 名称导致 SQL 字符集异常 6. 超长名称暴露 SQL Data truncation 7. 不存在的活动 ID 抽奖返回 200 8. 奖品价格为负数未校验可成功入库2.缺陷解决对以上bug进行分析总结核心问题输入校验缺失 错误处理不当 信息泄露 逻辑绕过问题解决如下示例异常处理 参数校验框架比如补上对异常参数的校验全局异常拦截 错误信息脱敏统一返回。