在线oj项目测试报告——系统模块测试

OJ-System 后台管理服务 - 功能测试报告

模块信息

项目内容
模块名称oj-system
模块职责后台管理功能、题目管理、考试管理、用户管理
测试日期YYYY-MM-DD
测试人员范晓凯

测试范围

  • 管理员认证模块
  • 题目管理模块
  • 考试管理模块
  • 用户管理模块
  • 系统配置模块

一、管理员认证模块

1.1 管理员登录

用例IDTC-SYS-001
接口POST /system/sysUser/login
测试项管理员账号密码登录
请求参数{"userAccount": "jwy_admin", "password": "123456"}
预期结果登录成功,返回Token
实际结果操作成功,缓存可见新增token
测试状态通过

1.2 错误密码登录

用例IDTC-SYS-002
接口POST /system/sysUser/login
测试项使用错误密码登录
请求参数{"userAccount": "jwy_admin", "password": "wrongpass"}
预期结果登录失败,返回密码错误提示
实际结果符合预期 {code:3103,msg:账号或密码错误,data: null}
测试状态通过

1.3 不存在的账号登录

用例IDTC-SYS-003
接口POST /system/sysUser/login
测试项使用不存在的账号登录
请求参数{"userAccount": "notexist", "password": "123456"}
预期结果登录失败,返回账号不存在提示
实际结果{code:3102,msg:用户不存在,data: null}
测试状态通过

1.4 获取管理员信息

用例IDTC-SYS-004
接口GET /system/sysUser/info
测试项获取当前登录管理员信息
请求头Authentication: Bearer {token}
预期结果返回管理员详细信息
实际结果{code:1000,msg:操作成功,data: {nickName:jwy,headImage:***} }
测试状态通过

1.5 管理员登出

用例IDTC-SYS-005
接口DELETE /system/sysUser/logout
测试项管理员退出登录
请求头Authentication: Bearer {token}
预期结果登出成功,Token失效
实际结果操作成功,token在缓存被删除,旧token已经失效
测试状态通过

1.6 新增管理员

用例IDTC-SYS-006
接口POST /system/sysUser/add
测试项添加新管理员账号
请求参数{"userAccount": "fxk", "password": "123456"}
预期结果管理员添加成功
实际结果操作成功,数据库表成功看到新增数据
测试状态通过

二、题目管理模块

2.1 题目列表查询

用例IDTC-SYS-007
接口GET /system/question/list
测试项查询题目列表
请求参数pageNum=1&pageSize=10&excludeStr=1001,1002&title=null&difficulty=null
预期结果返回题目列表,支持分页和搜索
实际结果成功返回excludeStr除外的所有题目数据 符合预期
测试状态通过

2.2 题目详情查询

用例IDTC-SYS-008
接口GET /system/question/detail
测试项查询题目详细信息
请求参数questionId=1
预期结果返回题目完整信息(包括测试用例)
实际结果{code:1000,msg:操作成功,data:【题目详情】}
测试状态通过

2.3 新增题目

用例IDTC-SYS-009
接口POST /system/question/add
测试项添加新题目
请求参数完整的题目信息JSON
预期结果题目添加成功,返回题目ID
实际结果数据库和ES缓存均成功新增题目
测试状态通过

2.4 编辑题目

用例IDTC-SYS-010
接口PUT /system/question/edit
测试项修改题目信息
请求参数{"questionId": 1991325210297122818, "title": "新标题", ...}
预期结果题目更新成功
实际结果操作成功 数据库,ES等均成功更新题目内容
测试状态通过

2.5 删除题目

用例IDTC-SYS-011
接口DELETE /system/question/delete
测试项删除题目
请求参数questionId=1991325210297122818
预期结果题目删除成功
实际结果操作成功 数据库缓存均成功删除题目
测试状态通过

三、竞赛管理模块

3.1 竞赛列表查询

用例IDTC-SYS-014
接口GET /system/exam/list
测试项查询竞赛列表
请求参数pageNum=1&pageSize=10
预期结果返回竞赛列表
实际结果成功返回竞赛列表,按照请求参数分页返回
测试状态通过

3.2 竞赛详情查询

用例IDTC-SYS-015
接口GET /system/exam/detail
测试项查询竞赛详细信息
请求参数examId=1
预期结果返回考试完整信息(包括题目列表)
实际结果成功返回竞赛详情,包括竞赛标题 开始&结束时间,竞赛涉及题目等
测试状态通过

3.3 新增竞赛

用例IDTC-SYS-016
接口POST /system/exam/add
测试项创建竞赛
请求参数完整的竞赛信息JSON(含题目列表)
预期结果竞赛创建成功,返回竞赛ID
实际结果成功返回竞赛id:1991336334308642818,数据库数据符合预期
测试状态通过

3.4 编辑竞赛

用例IDTC-SYS-017
接口PUT /system/exam/edit
测试项修改竞赛信息
请求参数{"examId": 1991336471630155778, "title": "新考试标题", ...}
预期结果竞赛更新成功
实际结果竞赛信息成功更新,ES Redis等缓存信息也同步更新,符合预期
测试状态通过

3.5 删除竞赛

用例IDTC-SYS-018
接口DELETE /system/exam/delete
测试项删除考试
请求参数examId=1991338418575740929
预期结果竞赛删除成功
实际结果符合预期,数据库及缓存中竞赛对应数据成功删除
测试状态通过

3.6 竞赛题目管理

用例IDTC-SYS-019
接口POST /system/exam/add
测试项为竞赛添加题目
请求参数{"examId": 1, "questionIds": [1,2,3]}
预期结果题目添加到竞赛成功
实际结果符合预期,exam_question表中成功新增数据
测试状态通过

3.7 发布竞赛

用例IDTC-SYS-020
接口PUT /system/exam/publish
测试项切换竞赛状态(未发布/已发布)
请求参数{"examId": 1991337829141811201}
预期结果竞赛发布成功
实际结果符合预期 竞赛成功发布,用户端竞赛列表正常显示
测试状态通过

3.8 撤销发布竞赛

用例IDTC-SYS-021
接口PUT /system/exam/cancelPublish
测试项切换竞赛状态(未发布/已发布)
请求参数{"examId": 1991337829141811201}
预期结果竞赛取消发布,客户端竞赛列表不存在该竞赛
实际结果符合预期 竞赛成功取消发布,用户端竞赛列表不存在该竞赛,数据库字段更新成功
测试状态通过

四、用户管理模块

4.1 用户列表查询

用例IDTC-SYS-022
接口GET /system/user/list
测试项查询用户列表
请求参数pageNum=1&pageSize=10
预期结果返回用户列表,支持搜索
实际结果返回所有用户结果,按照TableDataInfo格式返回, 符合预期
测试状态通过

4.2 用户详情查询

用例IDTC-SYS-023
接口GET /system/user/detail
测试项查询普通用户详细信息
请求参数userId=1005
预期结果返回用户完整信息
实际结果符合预期,成功返回该用户信息
测试状态通过

4.3 拉黑用户

用例IDTC-SYS-024
接口PUT /system/user/updateStatus
测试项拉黑用户
请求参数{"userId": 1009, "status": 0}
预期结果用户状态更新成功
实际结果符合预期 成功更新用户状态从1到0,更新后用户无法报名竞赛
测试状态通过

4.4 解禁用户

用例IDTC-SYS-025
接口PUT /system/user/updateStatus
测试项启用用户
请求参数{"userId": 1009, "status": 1}
预期结果用户状态更新成功
实际结果符合预期 成功更新用户状态从0到1,更新后用户可以正常报名竞赛
测试状态通过

测试结果统计

模块计划已执行通过失败阻塞通过率
管理员认证66600100%
题目管理77700100%
考试管理77700100%
用户管理44-00100%
总计24242400100%

缺陷列表

缺陷ID严重程度缺陷描述状态
[1001]/P3[竞赛添加题目功能:展示已添加题目前端列表表格狭窄,无法完全展示已添加题目]已修复

测试结论

测试结论

总体评估

本次对 oj-system(后台管理服务)模块进行了全面的功能测试,共计划 24 个测试用例,实际执行 24 个,通过 24 个,通过率 100%。

测试覆盖范围:

  • ✅ 管理员认证模块:登录、登出、权限验证等功能正常
  • ✅ 题目管理模块:增删改查、ES同步、缓存更新等功能正常
  • ✅ 考试管理模块:竞赛创建、题目配置、发布取消等功能正常
  • ✅ 用户管理模块:用户列表、状态管理、信息查询等功能正常

测试结果:

  • 所有核心业务流程运行正常
  • 数据一致性验证通过(数据库、Redis、Elasticsearch 三者同步正常)
  • 异常处理机制完善,错误提示清晰
  • 接口响应时间符合预期(平均响应时间 < 200ms)

遗留问题

测试建议

  1. 性能优化:题目列表查询在数据量较大时(>1000条)建议添加索引优化
  2. 安全加固:建议对管理员操作添加操作日志记录
  3. 功能增强:建议添加批量操作功能(如批量删除题目、批量发布竞赛)

上线评估

风险等级:低

oj-system 模块功能完整,测试通过率 100%,无阻塞性缺陷,建议按计划上线。


### 关于微服务架构在OJ平台上的测试报告及相关信息 #### 系统概述 OJ平台采用了微服务架构作为其基础架构风格,基于Spring Cloud框架并使用Java语言开发[^1]。该平台的服务被划分为三类:核心服务、平台Web服务以及平台保障服务。核心服务包括程序评测、试卷判分、比赛判分和代码相似度比对等功能;平台Web服务则负责向用户提供交互界面;而平台保障服务涵盖了诸如Web API框架、报警机制及消息队列(MQ)中间件等支持性组件。 为了确保系统在考试或竞赛期间能够稳定运行,尤其是涉及核心业务逻辑的部分,必须通过应用软件容错技术来增强系统的可靠性和鲁棒性。 #### 测试范围与目标 一次全面的功能性验证活动已经开展,旨在评估在线OJ系统的多个方面表现情况,具体来说是对核心功能、性能指标、安全防护措施以及最终用户的体验感受进行了深入考察[^2]。此次测试特别关注以下几个关键领域: - 用户账户管理体系的有效性; - 题目提交流程的顺畅程度; - 自动化代码评判引擎的工作效率及其准确性; - 各种形式的比赛模块能否满足实际需求。 上述提到的内容构成了整个项目质量保证环节的重要组成部分之一——即功能性测试部分。 #### 技术栈描述 当前所讨论的这个编程算法题目在线评测系统(OJ),构建在其特定的技术堆栈之上,其中包括但不限于以下要素: - **后端**: 使用了Spring Boot 和 Spring Cloud Alibaba 来实现微服务体系结构的设计理念,并借助Docker容器化技术简化部署过程。 - **消息传递层**: 利用RabbitMQ完成异步通信任务处理。 - **前端展示层面**: 基于Vue 3 构建现代化单页应用程序(SPA)[^3]。 这样的组合不仅有助于提高开发效率,同时也促进了不同团队之间的协作分工,使得复杂的大规模应用得以更加灵活高效地管理和维护。 #### 性能考量因素 当谈及到像这样依赖于分布式计算环境下的大规模并发请求场景时,如何优化整体吞吐量成为了一个不可忽视的话题。因此,在规划初期就应该充分考虑如下几个维度的影响: - 负载均衡策略的选择; - 数据库读写分离方案实施与否; - 缓存机制引入后的效果分析. 以上每一个决定都将直接影响到最后呈现出来的用户体验水平以及运营成本控制方面的成效. ```java // 示例代码片段展示了简单的负载均衡概念模拟 public class LoadBalancer { private List<ServiceInstance> instances; public ServiceInstance select() { Random random = new Random(); int index = random.nextInt(instances.size()); return instances.get(index); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值