在线OJ项目测试(selenium+Junit5)

目录

在线OJ项目测试的思维导图

在线OJ的UI自动化测试

测试一:检查未登录时的页面访问以及一些未登录时的非法操作

测试二:测试注册界面

测试三:测试登录界面

测试四:测试题目列表界面

测试五:测试题目详情界面

测试六:测试提交详情界面

测试七:测试评论列表界面

测试八:测试评论详情界面

测试九:测试个人中心界面


在线OJ项目测试的思维导图

在线OJ的UI自动化测试

对在线OJ项目的功能、接口进行测试,利用测试的工具:selenium以及Java的单元测试工具Junit进行测试,下面为UI自动化测试的思维导图,列出该项目测试的测试用例:

测试结果:

首先创建一个Maven项目,引入selenium以及Junit5的依赖

XML 复制代码
<dependency>
	<groupId>org.seleniumhq.selenium</groupId>
	<artifactId>selenium-java</artifactId>
	<version>4.0.0</version>
</dependency>
<dependency>
	<groupId>org.junit.jupiter</groupId>
	<artifactId>junit-jupiter</artifactId>
	<version>5.8.2</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.junit.platform</groupId>
	<artifactId>junit-platform-suite</artifactId>
	<version>1.8.2</version>
	<scope>test</scope>
</dependency>

通过Suite将多个测试用例组合成一个测试套件

按照这个类的顺序执行测试代码

首先创建一个驱动类

测试一:检查未登录时的页面访问以及一些未登录时的非法操作

通过EdgeDriver以及URL进行页面的访问,查看页面中的元素以及交互是否符合预期

测试二:测试注册界面

首先通过EdgeDriver以及URL打开注册界面

先检查一下页面元素是否加载

此处只是举例检查几个重要元素

测试注册失败的流程:

1.账号,密码,确认密码都为空

2.账号为空,密码和确认密码一致不为空

3.账号为空,密码和确认密码都为空

4.账号,密码,确认密码都不为空,但是密码和确认密码不一致

通过参数化进行测试,如果注册失败则会弹出警告,点击确认之后页面不会更改

测试注册成功的流程:

注册成功后会弹出确认框,点击确认会跳转到登录界面,反之页面不变

测试三:测试登录界面

首先通过EdgeDriver以及URL打开登录界面

检查页面元素是否正确加载

测试登录失败的流程:

1.空的账号,非空的密码

2.非空的账号,空的密码

3.错误的账号,正确的密码

4.正确的账号,错误的密码

通过参数化进行测试,如果登录失败则会弹出警告,点击确认之后页面不会更改

测试登录成功的流程 :

页面登录成功之后会跳转到题目列表页,检查登录成功后的个人头像和用户名是否存在

测试四:测试题目列表界面

首先通过EdgeDriver以及URL打开题目列表界面

检查页面是否正确加载

检查点击题目是否可以跳转到题目详情页

测试五:测试题目详情界面

首先通过EdgeDriver以及URL打开题目详情界面

检查页面元素是否加载,检查导航栏的下拉框是否存在

测试代码的提交按钮,点击提交后刷新页面,页面会更新历史提交记录

点击历史提交记录,跳转到提交详情页,检查提交详情页中的元素是否存在

测试六:测试提交详情界面

首先通过EdgeDriver以及URL打开提交详情界面

检查页面元素是否加载,以及导航栏的下拉框是否存在

测试七:测试评论列表界面

首先通过EdgeDriver以及URL打开评论列表界面

检查页面元素是否加载,以及导航栏的下拉框是否存在

测试发表评论,刷新评论详情页,查看是否可以点击评论,进入到评论详情页,检查页面的元素是否存在

测试八:测试评论详情界面

首先通过EdgeDriver以及URL打开评论详情界面

检查页面的元素是否加载

测试九:测试个人中心界面

首先通过EdgeDriver以及URL打开个人中心界面

检查页面元素是否加载,关键元素是否存在

关闭浏览器驱动,结束测试

相关推荐
wuyk5553 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 33 章 Wireshark 无线抓包环境搭建、802.11 帧过滤规则
物联网·测试工具·wireshark
代码什么用4 小时前
Spring基础使用
java·后端·spring
Su米苏5 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园5 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁5 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网5 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西6 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨6 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车5556 小时前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding7 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom