[项目测试]负载均衡在线OJ测试

一、项目背景

1、实现可以在线做题的系统,可以在浏览器上访问题目,编写代码,编译以及运行,并返回结果, 本项目是实现一个仿 leetcode 的 OJ (Online-Judge)系统。更准确的说应该称之为leetcode 的裁剪版。

2、因为本项目只实现了leetcode中展示题目列表 + 在线测评的功能。至于leetcode中的其他功能例如:社区、论坛、求职等功能暂未实现,大家可自行进行扩展。

二、项目功能

1)主要功能

该在线OJ项目主要实现了以下功能:
1. 能够管理题目:保存很多题目信息,即 题干与测试用例
2. 题目列表页:能够展示题目列表,即题目的序号、标题以及难度
3. 题目详情页:能够展示某个题目的详细信息和代码编辑框等信息
4. 提交并运行题目:详情页中有一个“提交”按钮,点击按钮之后网页就会把当前的代码提交到服务器上,服务器就会执行该代码,并给出一些是否通过测试用例的结果展示
5. 查看运行结果:有另一个结果页面,能够展示上次提交的代码是否通过以及错误的用例信息。

2)项目整体框架

本项目是一个OJ系统,意味着以下的流程是必要的:

1、用户访问 OJ 服务网站;
2、用户通过网页选择获取题目列表;
3、服务端 oj_server 模块读取题库信息进行响应;
4、用户选择题目进入OJ界面;
5、服务端 oj_server 读取题目信息进行响应 + 网页渲染(题目标题,题目内容,预设代码等);
6、用户进行编程并提交代码;
7、服务端 oj_server 模块获取用户提交的代码,并整合题目信息;
8、之后 oj_server 的判题功能启动(Judge 函数),Judge 内部请求编译运行服(compile_and_run模块),并得到运行结果;
9、服务端 oj_server 将结果相应给用户;


通过以上流程,不难看出本项目主要由以下模块构成:

  • oj_server:使用 MVC 架构完成前后端的联动;
  • Model 模块:负责数据的存储和业务逻辑。即题库的加载和存储;
  • View 模块:负责将数据呈现给用户。将题库展现在前端页面上并于用户进行交互;
  • Controller 模块:主要的逻辑控制模块。Model 与 View 的中介;
  • compiler:编译运行模块。只负责 oj_server 所提供的代码的编译和运行,并返回结果;
  • 编译模块(使用程序替换执行 g++ 进行编译工作)
  • 运行模块(运行可执行程序,收集程序的标准输出、标准错误内容)
  • 编译运行模块(整合编译和运行的功能)

   除此之外还有一些辅助的模块:

  • log:日志模块。负责打印日志信息;
  • comm:公共模块。主要是一个通用工具类和第三方库;

三、测试计划

一、功能测试

1.设计测试用例

2.实际执行测试的部分操作步骤/截图

1)输入url后正确跳转到首页

2)在首页点击题库以后跳转到题目"列表页"

3)在“列表页”点击题目标题之后会跳转到"详情页"

4)代码编辑框编写代码

5)提交代码并查看结果

二、自动化测试

1、代码编写

查看我的码云链接

2、新建common文件夹注意点如下:
1)在该包下面存放的是公共类
2)新建公共类AutoTestUtils
① 创建驱动、保存现场截图
② 注意:在保存现场截图的时候命名是按时间来进行文件夹的划分的,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
③ 注意文件名的动态获取,注意时间格式的设置。
④ 注意:可以在创建驱动的时候修改默认的有头模式or无头模式(此处最后采用的是无头模式,在写代码的时候因为边写边检查所以可以先采用有头模式进行查看修改)

3、新建tests包并在包下新建测试类
1)主页的“项目链接”点击跳转测试:HomeLinkTest类
主要实现了一个测试用例,即点击“项目链接”后会跳转到在线OJ系统首页页面,并检测该页面的元素来确认跳转成功。
2)列表页点击标题的跳转测试:ListTest类
① 测试列表页是否正常显示,通过检查列表页的元素如编号、列表等元素来确定列表页的正确展示。
② 点击列表页的题目“标题”之后会跳转到详情页,同样通过检查页面的元素来确定跳转成功。
3)详情页提交代码测试:DetailTest类
① 与主页类似的“项目链接”跳转测试
② 代码编辑框的检查以及空代码的提交,然后通过结果区内容与预期结果的对比还判断是否正确编译运行。(但是注意这里没有实现代码编辑以后再提交的测试)
4)驱动释放类:DriverQuiteTest类

 

内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台搭建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的搭建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫珂蛋儿吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值