目录
- 一.项目描述
- 二.测试职责
- 2.1 测试核心目标与范围
- 2.2 功能需求分析
- 2.2.1 登陆权限模块
- 2.2.2 题库试题管理模块
- 2.2.3 试卷配置模块
- 2.2.4 考生业务模块
- 2.3 测试用例设计
- 2.3.1 测试用例设计原则
- 2.3.2 测试用例设计方法
- 2.3.3 考试系统 → 对应使用的设计方法
- 2.3.4 编写测试用例
- 2.4 功能测试执行–基础体验兜底保障
- 2.5 接口自动化测试 —— 系统底层稳定性保障
- 2.5.1 测试范围与场景设计
- 2.5.2 接口自动化测试的实现
- 2.6 UI自动化测试
- 三.项目总结
一.项目描述
该项目为满足企业对新员工进行入职考核,学校对老师和学生的考试考核,政府部门和医疗机构对员工的周期性考核定制研发的一款多角色在线考试系统。
二.测试职责
2.1 测试核心目标与范围
本次测试围绕 一站式企业内部考核考试系统 全业务流程展开,以保障功能可用、接口稳定、UI 易用、性能达标为核心目标,构建 “功能测试 + 接口自动化 + UI 自动化 + 性能压测” 四位一体的测试体系,全面保障系统质量与用户体验。
2.2 功能需求分析
深度参与系统需求分析与业务流程拆解,针对登录权限模块、题库试题管理模块、试卷配置模块 、考生业务模块四大核心板块,梳理正常场景、异常场景、边界场景,按照等价类、边界值、场景法设计规范编写完整测试用例,覆盖核心业务全流程与关键 分支,明确用例步骤、预期结果与前置条件,确保测试无遗漏、用例可执行,核心模块测试覆盖率达标。
2.2.1 登录权限模块
正常场景:
- 管理员输入正确账号密码,成功登录后台系统。
- 考生输入正确账号密码,成功进入考生考试页面。
- 不同角色进入系统后,展示对应权限菜单,权限隔离正常。
异常场景:
- 账号、密码为空点击登录,系统拦截并提示必填。
- 输入错误账号或错误密码,登录失败并给出提示。
- 考生直接访问管理员后台URL,系统进行权限拦截,禁止越权访问。
边界场景:
- 账号输入最大长度字符,系统正常校验不崩溃。
- 密码输入最大长度字符,系统可正常识别校验。
2.2.2 题库试题管理模块
正常场景:
- 正确填写题干、选项、答案、难度,可成功新增试题。
- 正常对试题进行编辑、保存,数据更新正确。
- 对未使用试题进行删除,可正常删除。
- 通过关键词、题型、难度可正常搜索、筛选题目。
异常场景:
- 新增试题题干、选项为空,系统拦截提交。
- 多选题只选一个答案,系统拦截不允许提交。
- 删除已被试卷引用的试题,系统禁止删除并提示。
- 新增重名题库/题干,系统提示重复无法保存。
边界场景:
- 题库名称输入最小3字符、最大30字符可正常保存。
- 题库描述输入最大200字符可正常保存。
- 输入字符超过最大限制,系统拦截并提示超限。
2.2.3 试卷配置模块
正常场景:
- 正确填写试卷信息、配置100分总分、单选30–50分值,可成功创建试卷。
- 正常勾选试题完成组卷,试卷可正常保存发布。
- 通过名称、状态可正常搜索查询试卷列表。
异常场景:
- 试卷名称为空、未配置分值直接保存,系统拦截。
- 试卷总分不等于100分,系统禁止保存。
- 单选分值低于30或高于50,不满足业务规则无法保存。
- 不选择任何试题直接组卷,系统拦截提示。
边界场景:
- 单选分值输入临界值30分、50分可正常保存。
- 试卷名称输入最大、最小字符数可正常适配。
2.2.4 考生业务模块
正常场景:
- 考生正常选择试卷、答题、提交试卷,系统自动判分。
- 考试结束后可正常查看考试成绩、历史记录。
- 考生可正常进入错题训练,练习错题。
异常场景:
- 考试中途刷新页面,防止数据丢失异常。
- 重复点击交卷,系统限制只能提交一次。
- 未答完必答题直接提交,系统拦截提示补全作答。
边界场景:
- 考试倒计时归零,系统自动强制交卷。
- 所有题目答对,得到满分。
- 所有题目答错,成绩为0分。
2.3 测试用例设计
2.3.1 测试用例设计原则
依据项目需求文档与核心功能模块,深度拆解考试系统业务逻辑,结合等价类划分、边界值分析等常用测试方法,设计全面且针对性强的测试用例,完整覆盖用户登录权限、题库试题管理、试卷配置、考生业务等核心功能场景,保障测试覆盖无关键遗漏。
2.3.2 测试用例设计方法
1.等价类划分法
思想:将输入划分为有效等价类、无效等价类,从两类中选取代表性用例进行测试。
适用:账号密码登录、题库/试题字段输入、试卷分值配置等。
例子:题库名称要求3‑30个字符。
有效等价类:输入5个合法字符,可正常保存。
无效等价类:输入空值、包含非法特殊字符,系统拦截保存。
2.边界值分析法
思想:重点测试边界点(最大、最小、为空、临界分值)。
适用:题库名称长度、描述字数、试卷分值范围、考试倒计时。
例子:
单选题总分范围为30‑50分:测试29、30、50、51。
题库名称下限为3字符:测试2个字符、3个字符、4个字符。
3.场景法(流程法)
思想:模拟用户完整业务流程。
适用:管理员组卷发布试卷、考生登录‑答题‑提交‑查分‑错题训练完整流程。
例子:
正常流程:管理员登录→维护题库→配置试卷→发布试卷;考生登录→选择试卷→答题提交→自动判分→查看成绩。
异常流程:未登录考生直接访问考试页面→跳转至登录页;考试倒计时结束未交卷,系统自动提交试卷。
4.错误推测法
思想:凭经验猜系统容易出错的地方。
适用:考试系统并发操作、权限拦截、异常场景处理。
例子:
重复点击交卷造成多次提交答卷。
删除已经被试卷引用的试题。
考生越权访问管理员后台管理页面。
2.3.3 考试系统 → 对应使用的设计方法
- 用户登录、权限校验、试卷配置、组卷:等价类 + 边界值
- 题库、试题管理:等价类 + 边界值 + 错误推测
- 考生在线考试、提交答卷:场景法 + 错误推测
- 成绩、错题查询筛选:等价类 + 场景法
- 删除题库/试题、批量操作:边界值 + 错误推测
2.3.4 编写测试用例
2.4 功能测试执行–基础体验兜底保障
严格按照既定测试用例,逐一对平台各项功能开展精细化手动测试,全面核查界面交互合理性、业务流程连贯性,细致排查每个操作环节的异常问题,精准记录功能缺陷、交互bug及各类异常情况,同步整理缺陷明细。
功能测试是整个测试工作的基础,采用黑盒测试方法,严格按照需求文档与业务流程,模拟用户真实操作,逐项验证功能可用性。
2.5 接口自动化测试 —— 系统底层稳定性保障
接口是考试系统前后端交互的核心通道,本次采用pytest + requests搭建接口自动化框架,实现一键执行、自动断言、批量回归。
基于pytest测试框架搭建考试系统完整接口测试体系,针对用户登录权限、题库管理、试卷配置、考生考试作答、成绩查询等核心接口,设计了核心的自动化测试用例,覆盖正常请求、参数错误、未授权访问、非法业务ID等多类场景,实现接口请求发送、响应数据解析、业务结果断言的全流程自动化执行,生成可视化、结构化的接口测试报告,全方位保障考试系统接口功能稳定可靠、数据传输准确、业务流程闭环正常。
2.5.1 测试范围与场景设计
核心业务接口覆盖
1.登录权限模块(4个核心接口)
- /user/login - 管理员登录
- /user/login - 管理员错误密码登录
- /user/login - 考生正常登录
- /user/login - 考生使用不存在账号登录
2.题库试题管理模块(4个核心接口)
- /question/add ‑ 管理员新增试题
- /question/list ‑ 管理员查询全部试题列表
- /question/list ‑ 游客无Token查询试题列表
- /question/search ‑ 管理员按条件搜索试题
3.试卷配置模块(4个核心接口)
- /paper/add ‑ 管理员新增试卷
- /paper/list ‑ 管理员分页查询试卷列表
- /paper/list - 游客无Token访问试卷列表
- /paper/edit - 管理员编辑试卷
4.考生业务模块(4个核心接口)
- /exam/start ‑考生开始考试
- /exam/submit ‑考生正常提交答卷
- /exam/submit ‑考生使用非法试卷ID提交答卷
- /exam/recordList ‑查询考生考试历史记录
重点覆盖三类测试场景
本次接口自动化围绕考试系统全业务链路,基于16条自动化用例从正常流程、异常容错、边界极限三个维度开展测试,验证后端接口的健壮性。
- 正常场景
使用合法账号与合规参数发起请求,校验业务可正常执行、返回正确结果。管理员、考生正常登录获取鉴权凭证;管理员完成试题新增、查询、检索以及试卷新建、编辑、列表查询;考生正常开启考试、提交答卷、查询考试记录,打通整条正向业务链路。 - 异常场景
模拟错误账号密码、无Token未授权访问、传入非法业务ID等请求。验证系统对错误登录、游客越权查询题库与试卷、使用无效试卷ID交卷等异常情况可以正常响应、合理容错。 - 边界场景
针对不存在账号、非法试卷编号、无凭证访问这类临界调用场景进行验证,检验服务在非常规入参、未授权访问等边界条件下运行稳定,无崩溃报错。
2.5.2 接口自动化测试的实现
搭建环境 → 封装请求 → 抽取公共方法 → 数据驱动用例 → 统一断言 → 生成报告 → 持续回归
1.框架选型与基础搭建
- 测试框架:pytest
- 请求库:requests
- 测试报告:Allure
部署Python运行环境,搭建分层化项目目录,分别建立配置、公共工具、测试用例、测试数据目录。
2.封装请求与公共方法
封装统一的HTTP请求工具类,抽取登录鉴权、日志打印等通用公共方法,提高代码复用率,方便后续统一维护。
3.数据驱动编写测试用例
梳理登录权限、题库试题、试卷配置、考生业务四大模块接口,把正常、异常、边界场景的测试数据与业务代码分离,借助pytest参数化驱动执行全套接口用例。
4.统一断言逻辑
对接口响应码、业务返回字段进行多层断言,校验接口返回结果、后端数据均满足业务设计要求。
5.执行脚本,生成测试报告
批量运行全部自动化脚本,通过Allure生成可视化测试报告,统计用例执行情况,快速定位执行失败的问题接口。
6.持续回归
系统迭代升级后,重新执行整套自动化脚本,完成接口回归测试,减少大量重复性手工测试。
2.6 UI自动化测试
运用Selenium自动化测试工具,针对系统内部重复性高、操作流程固定的高频测试场景,编写专属自动化测试脚本,替代重复手动测试工作,同步完成脚本调试与优化,保障脚本稳定运行。
该平台UI自动化测试分为考生端核心业务流程、管理员端UI自动化测试、系统通用与异常场景三大板块,覆盖从用户注册登录到后台管理的全链路操作,具体模块如下:
一、考生端UI自动化测试
账号与个人中心模块
‑ 注册/登录/退出流程:账号密码登录、记住密码、退出登录、密码修改
‑ 个人信息管理:个人资料查看、密码重置、账号安全设置在线考试模块
‑ 考试列表页:可参加考试筛选、考试信息查看、页面刷新
‑ 在线答题:进入考试、单选题/多选题作答、上一题下一题切换
‑ 提交阅卷:试卷提交、考试成绩回显、考试记录查询成绩查询模块
‑ 成绩列表:历史考试记录分页展示、按考试名称筛选
‑ 成绩详情:得分、错题、正确答案查看校验
二、管理员端UI自动化测试
考试管理模块
‑ 考试上下架:考试记录新增、编辑、启用/禁用、批量管理
‑ 考试信息维护:考试名称修改、考试时长调整、考试状态更新
‑ 考试审核:违规考试核查、无效考试下架管理考生管理模块
‑ 考生处理:考生列表查看、考生账号新增、考生信息修改、账号状态管理
‑ 考生售后:考生重置密码、违规考生封禁、考生状态跟踪试卷管理模块
‑ 试题管理:试题信息查看、试题录入、试题修改、试题删除
‑ 试卷管理:试卷创建、编辑、启用停用、考试数据统计
‑ 数据看板:考试数据、考生数据、成绩数据可视化校验
三、系统通用与异常场景UI自动化测试
权限校验场景
‑ 未登录状态访问受限页面(考试管理、考生管理、试卷管理)的拦截校验
‑ 普通考生访问管理员后台页面的权限拦截
‑ 不同角色(管理员、普通考生)的菜单权限、按钮操作权限校验异常与边界场景
‑ 网络异常:断网/弱网环境下页面加载、操作提示、重试机制校验
‑ 数据边界:考试时长为0、超大值、超长文本输入、空表单提交的页面校验
‑ 重复操作:重复点击新增、重复提交表单的页面提示校验
‑ 浏览器兼容性Edge主流浏览器页面渲染、操作一致性校验性能与体验场景
‑ 页面加载速度:首页、考试列表、新增表单页面加载耗时校验
‑ 交互响应:侧边菜单点击、表单提交、弹窗加载的响应速度校验
‑ PC端适配:电脑端页面布局适配,校验操作一致性
四、UI自动化测试技术说明
‑ 核心框架:Selenium + Python
‑ 核心能力:页面元素定位、显式等待封装、测试用例参数化、异常捕获、失败截图留存
‑ 报告工具:控制台输出执行日志,展示用例执行结果、失败原因、操作链路
‑ 持续集成拓展:后续可结合Jenkins配置定时任务,实现流水线自动化回归执行
三.项目总结
本次在线考试管理系统测试是一次完整的测试实践。项目先后完成手工功能测试、接口自动化以及UI自动化测试,分层对系统业务进行验证。整套自动化脚本具备复用性,可以在后续版本迭代中快速执行回归测试,提高测试效率,保障系统交付质量。