当前位置: 首页 > news >正文

在线OJ项目测试

一.项目简介

1.1项目背景

  • 历史起源:最早的OJ系统(如UVa、POJ)是为国际大学生程序设计竞赛(ICPC)等赛事开发的,用于自动评判参赛者的代码正确性和效率。

  • 需求场景:竞赛需要公平、高效的评分系统,避免人工判题的耗时和主观性。

  • 教学工具:高校和培训机构需要OJ系统来布置编程作业、实验或考试,实时反馈学生代码的逻辑错误、时间/空间复杂度等问题。

  • 自学平台:个人学习者通过OJ(如LeetCode、洛谷)刷题提升算法和数据结构能力。

  • 标准化筛选:企业(如Google、国内大厂)将OJ题目嵌入笔试环节,快速筛选候选人的编码能力。

  • 常见平台:HackerRank、Codeforces等支持企业定制题库和在线编程测试。

  • 自动化判题:利用沙箱(Docker等)隔离运行用户代码,通过测试用例比对结果。

  • 云计算支持:现代OJ系统依赖云服务实现高并发判题

1.2 应用技术

SpringCloud微服务架构,SpringBoot框架,Mybatis-plus操作数据库,使用ApiFox进行代码测试以及生成接口文档,全局引入日志框架,Nacos配置中心,API网关,JWT身份认证,redis缓存,Mybatis的分页插件PageHelper,接口性能测试Jmeter.TransmittableThreadLocal.分布式任务调度平台xxl-job处理定时任务.Elasticsearch进行题目关键字搜索,使用阿里云的oss用于存储头像信息,rabbitmq消息队列


二.项目功能

2.1 管理端

登录:管理员可以通过账号密码进行登录,对于管理员密码存储到数据库要进行加密.

竞赛:添加竞赛,竞赛中的题目信息添加,查询题目,竞赛编辑,删除.以及竞赛的发布和撤销发布

题目:管理员可以添加题目,对题目信息进行修改,删除题目,查询题目

2.2 用户端

登录:用户使用手机号+验证码的方式进行登录,并对手机号进行加密处理

题目:用户可以参与答题,查询题目等操作

竞赛:用户可以报名参加竞赛,查看历史竞赛,以及查看我的竞赛列表

用户:提供用户可以查看个人信息,以及修改个人信息等


三.测试报告

3.1测试用例设计


3.2 功能测试

3.2.1 b端

3.2.1.1 登录测试

直接点击登录,提示我们账号密码不能为空

输入账号,不输入密码,提示我们密码不能为空

只输入密码,不输入账号,提示我们用户名不能为空

登录成功测试,登录成功后直接跳转管理页面

用户点击退出登录后是否会退到登录界面,测试成功

3.2.1.1 竞赛测试
3.2.1.1.1竞赛搜索

输入正确的日期区间是否会查询出结果,查询结果成功

输入错误的区间是否也会搜索出竞赛 ,查询结果失败.

输入竞赛完整名称是否会完成搜索,搜索成功

搜如关键字是否会搜索出结果,搜索成功

 日期和竞赛名同时搜索会是否会搜索出结果,搜索成功

3.2.1.1.1竞赛添加

竞赛名称包含特殊字符是否可以创建,这里并没有对竞赛名称限制,后续需考虑

使用重复的竞赛名称进行竞赛添加是否可以通过,提示竞赛已经存在

竞赛开始时间在当前时间之前是否可以创建竞赛成功,提示竞赛时间不能早于当前时间

未添加竞赛题目的竞赛是否可以发布 

添加竞赛题目的竞赛是否可以发布 

 3.2.1.1.1竞赛删除

管理员点击删除竞赛是否可以成功删除竞赛

3.2.1.1.1竞赛编辑 

用户点击编辑竞赛是否会成功显示竞赛详情信息

 3.3 界面测试

页面显示正常,功能模块布局完整,功能点显示没有异常.各个模块位置分配符合预期.背景图片清晰

用户登录后右上角会正确显示用户信息

 3.2.2 c端

3.2.2.1 登录测试

用户未登录

我们可以看到用户在未登录的时候是不能进行答题操作的

同样我们测试下位报名是否可以报名参加竞赛,点击参加竞赛,提示我们未登录不能参加竞赛

接下来进入登录页面进行测试

什么都不输入,提示出验证码获取失败,提示信息不准确,需要后续进行更改

输入错误的手机号错误的验证码,提示验证码过期,也是有漏洞的需要更改

输入正确的手机号验证码后点击登录,直接跳转页面,由于该项目本打算使用阿里云短信服务,但是阿里云限制测试学习,我们只能通过日志打印的方式打印验证码.我们也可以设置一个开关,固定验证码测试时使用.

用户登录后可以发现我们可以进行答题操作

点击竞赛页面,报名参加竞赛,提示我们报名成功

同时在我的竞赛列表也能刚刚看到报名的竞赛

3.2.2.2 答题测试

答题使用es进行分词查询,通过测试效果是可以通过的

根据题目难度也可以进行测试

用户在答题页面进行题目切换

题目切换也是没问题的

接下里是用户答题测试

功能测试总结:

总体来说功能实现基本测试完成,

b端管理员操作对于竞赛或题目的增删改查已经基本实现

b端登录功能基本实现,登录失败会正确提示用户

c端用户答题功能,题目竞赛搜索功能,题目查询功能基本实现

但是c端用户登录的时候登录失败的提示不是很准确需要后续整改

3.3 性能测试

首先我们简单的对登录接口进行压力测试,准备100个线程对管理员登录接口进行测试

目前他抵挡住了我100个线程的攻击,此时我们加大马力,进行300次,由于博主电脑配置不是很高不敢贸然尝试更大的

查看结果树 

聚合报告

我们可以看到请求300次也是可以成功的,当然这并不能说明什么, 还需要后续的梯度压测进行测试,

生成梯度压测测试报告后,因为只是简单测试,一般不会有什么问题,并且线程数也不是很大,轻薄本不敢轻易尝试,还望见谅

相关文章:

  • C++.OpenGL (7/64)摄像机(Camera)
  • 云服务器厂商机房是什么
  • 玛哈特辊式矫平机:塑造金属平整的精密力量
  • U-Mail邮件加密,保障邮件系统信息安全
  • 5.1 HarmonyOS NEXT系统级性能调优:内核调度、I/O优化与多线程管理实战
  • LlamaIndex 工作流简介以及基础工作流
  • 开源语义分割工具箱mmsegmentation基于Lovedata数据集训练模型
  • x32dbg/x64dbg SwissArmyKnife 插件导入map文件不生效
  • 我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
  • 动态IP与静态IP:数字世界的“变脸术”与“身份证”
  • 深入理解 Linux Kernel Panic:常见原因与实战分析
  • 网络库libhv介绍
  • systemback复制系统报错
  • 【Unity Shader编程】之让画面动起来
  • JVM虚拟机:内存结构、垃圾回收、性能优化
  • 深入理解Java单例模式:确保类只有一个实例
  • Java-IO流之打印流详解
  • MySQL基础(四)DML、数据表操作DDL操作
  • MAX3490
  • 关于双网卡优先级:有效跃点数的解析(设置值×2)
  • 临沂哪里有做网站/网络营销文案策划
  • 广西省住房和城乡建设厅官方网站/百度推广工作怎么样
  • 关于网站建设的电话销售话术/电商运营公司
  • 怎么找做网站的公司/seo人员培训
  • 北京网站建设与维护/seo课程哪个好
  • 宁波网站推广外包服务/百度seo白皮书