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

网页五子棋对战项目测试(selenium+Junit5)

目录

网页五子棋对战项目介绍

网页五子棋对战测试的思维导图​

网页五子棋对战的UI自动化测试

测试一:测试注册界面

测试二:测试登陆界面

测试三:测试游戏大厅界面

测试四:测试游戏房间界面以及观战房间界面

测试五:测试对局回放列表界面

测试六:测试对局回放详情界面


网页五子棋对战项目介绍

该项目为一个SSM项目,玩家之间可以进行实时的五子棋对战,拥有对战观战、对战回放、聊天、天梯分等功能

网页五子棋对战的思维导图

网页五子棋对战的UI自动化测试

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

 

测试结果:

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

<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打开注册界面

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

测试注册失败的流程:

1.账号为空,密码不为空

2.账号不为空,密码为空

账号注册失败页面会提示注册失败的弹窗

测试注册成功的流程:

账号注册成功后会跳转到登录界面

测试二:测试登陆界面

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

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

测试登录失败的流程:

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

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

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

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

登录失败会跳出提示弹窗

测试用户未登录的时候的页面访问

用户未登陆的时候是不可访问这些页面的,拦截器会将用户的请求拦截,并跳转到登录界面

测试登录成功的流程:

用户登陆成功后会跳转到游戏大厅界面,检查是否存在游戏大厅界面中的元素

测试三:测试游戏大厅界面

创建三个不同的浏览器驱动,分别用来登录三个账号,两个账号用来匹配对手,进入到游戏房间界面,另一个账号作为观战用户来访问这个游戏房间,进行测试观战房间界面

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

测试点击匹配按钮,当前的状态是否会发生改变,并与另一个对手匹配,进入到游戏房间界面 

测试四:测试游戏房间界面以及观战房间界面

创建三个浏览器的驱动

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

测试聊天框,测试用户发送一条消息是否可以显示

通过观战大厅中的链接跳转到正在对局的观战房间,测试观战房间界面是否正确显示

通过直接输入URL测试是否可以进入到观战房间界面

游戏房间中的用户1刷新页面,测试用户掉线的提示弹窗,退出游戏房间

当前测试后关闭用户2和用户3的浏览器驱动,剩下刷新页面退出游戏房间的用户1来测试回放界面

测试五:测试对局回放列表界面

通过EdgeDriver以及URL访问回放列表界面

检查页面中的元素是否正确加载,回到游戏大厅通过点击游戏大厅中的导航栏跳转到回放列表,测试回放列表页面元素是否正确加载

测试点击回放列表中的链接进入到回放房间

测试六:测试对局回放详情界面

创建EdgeDriver驱动

检查页面元素是否正确加载,并测试通过URL直接访问回放房间

测试结束后执行后置方法,关闭浏览器驱动

相关文章:

  • Python数据分析与建模库-02科学计算库Numpy01-05合集
  • Java高阶数据结构-----并查集(详解)
  • Matlab实现DBO-BiTCN-BiGRU-Attention蜣螂算法优化双向时间卷积双向门控循环单元融合注意力机制多变量回归预测
  • php收银系统源码推荐
  • tsp可视化python
  • C# 中的日志记录技术详细解析与示例
  • Android帧绘制流程深度解析 (一)
  • 筛斗数据:如何利用数据提取技术提高能源利用效率
  • 2024 年最新 Python 基于百度智能云实现短语音识别、语音合成详细教程
  • memcached介绍和详解
  • 【尚庭公寓SpringBoot + Vue 项目实战】图片上传(十)
  • 数学术语:“suprema” 和 “supremum”指什么
  • 刺客信条找不到emp.dll怎么解决?emp.dll缺失的解决方法解析
  • Arduino入门1——认识Arduino,点亮一个LED
  • 8个常用的辅助函数!!
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • Android 控件背景颜色处理
  • Apache Spark Streaming 使用实例
  • C++类中的特殊成员函数
  • echarts花样作死的坑
  • JWT究竟是什么呢?
  • Nodejs和JavaWeb协助开发
  • PHP的Ev教程三(Periodic watcher)
  • python_bomb----数据类型总结
  • Python_网络编程
  • Spring Cloud Feign的两种使用姿势
  • vue 配置sass、scss全局变量
  • webgl (原生)基础入门指南【一】
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 给初学者:JavaScript 中数组操作注意点
  • 智能合约Solidity教程-事件和日志(一)
  • kubernetes资源对象--ingress
  • linux 淘宝开源监控工具tsar
  • 容器镜像
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #Lua:Lua调用C++生成的DLL库
  • $.ajax()
  • (k8s)kubernetes集群基于Containerd部署
  • (Qt) 默认QtWidget应用包含什么?
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (补)B+树一些思想
  • (计算机网络)物理层
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (三)SvelteKit教程:layout 文件
  • (算法)区间调度问题
  • (小白学Java)Java简介和基本配置
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [android学习笔记]学习jni编程
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [BZOJ]4817: [Sdoi2017]树点涂色