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

五子棋测试用例

一.项目背景

1.1 项目简介


传统棋类文化的推广

五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类文化的魅力,有助于五子棋文化在全球范围内的传承和发展。

网页技术的推动

随着HTML5、JavaScript等网页技术的不断发展,开发网页五子棋变得更加容易和可行。这些技术能够实现五子棋游戏的界面绘制、交互逻辑(如落子、判断胜负等)以及实时对战功能。例如,JavaScript可以方便地处理用户在网页上的操作事件,HTML5的canvas元素能够用于绘制五子棋棋盘和棋子。

网络基础设施的改善

高速宽带和无线网络的广泛覆盖,使得在网页上进行实时对战的五子棋游戏体验更加流畅。低延迟的网络环境确保了玩家之间的操作能够及时同步,不会出现明显的卡顿现象,这为网页五子棋的发展提供了良好的网络技术支撑。

1.2 应用技术
网页五子棋应用了多种技术:

项目使用 SpringBoot 进行搭建,采用 SSM 框架(Spring + SpringMVC + MyBatis)进行开发,使用的应用层协议 WebSocket(一种在单个TCP连接上进行全双工通信的协议,用于实现实时的网络对战功能,保证玩家之间的落子信息能够及时、准确地传输),在每个模块的编写过程中都分为了客户端开发(前端)与服务器端开发(后端),在进行前端页面编写时用到了 HTML、CSS、JS,在前后端交互部分使用了 jQuery、Ajax,同时本项目使用 MySQL 数据库(一种关系型数据库,可用于存储游戏中的结构化数据,如玩家账号、游戏积分、排行榜等信息,提供强大的事务处理和数据一致性支持)来存储用户的相关数据。


二、项目功能


2.1 用户管理功能


用户注册与登录:用户可以通过注册页面注册账号,填写用户名、密码等信息进行注册,注册成功后可在登录页面输入账号密码登录。

用户信息管理:系统能够记录用户的相关信息,如用户id、用户名、密码、天梯分数、排位总场次和胜场总场次等,并提供修改密码、查看个人信息等功能。

用户状态管理:通过session管理模块实现用户登录状态的维护,使用户在游戏过程中保持登录状态,直到用户主动退出或超时自动退出。

2.2 游戏对战功能


匹配对战:系统根据用户的天梯分数等信息进行匹配,为玩家找到合适的对手,进入游戏房间进行对战。

实时对战:在游戏房间内,玩家可以进行实时的五子棋对战,双方轮流落子,通过点击棋盘上的空位放置棋子。

胜负判断:系统能够实时检测当前落子位置在横、纵、斜四个方向是否有连续五个相同的棋子,以判断胜负。


三.测试报告

3.1 测试用例


3.2功能测试

3.2.1 登录功能测试

通过测试,我们发现登录页面上左上角的”五子棋对战“字样正常显示,页面的背景图片正常显示,页面中的登录框,以及框中的输入框、提示字样和登录正常显示。在界面测试上并未发现bug。


非正确的登录方式:

1.输入账号并不输入密码

这里提示登录失败

2.输入密码但是不输入账号

依然提示登录失败

3.账号或密码包含特殊字符是否会登录

异常登录

异常登录有两种情况,一种是用户名错误的情况,另一种是密码错误的情况,先看一下用户名错误的情况:

用户名错误时,会登录失败,页面会提示用户“登录失败!”。接下来再看看密码错误的情况:

密码错误时,依然会提示“登录失败!”,同过测试发现,登录页面对于异常登录的情况处理没有bug。


正常登录

接下来我们进行测试登录看是否可以正常跳转到匹配页面

弹窗显示登录成功,我们点击看是否会跳转到匹配页

点击后跳转匹配页面,页面显示正常,并且正常显示玩家个人信息已经分数信息.


接下来使用自动化脚本进行登录测试


3.2.2 匹配功能测试

进行匹配测试的时候还对兼容性做了小小的测试,在edge浏览器上也可以正常显示

通过测试发现,游戏房间页面左上角“五子棋对战”字样正常显示,玩家信息正常显示,由于并没有给玩家设置头像,这里的两个头像只是为了看起来更加丰富,因此头像不视为bug,棋盘正常显示,棋盘下方的提示信息也是正常显示,聊天框正常显示。在界面测试中并未发现bug。

接下来我们首先测试一下对战功能:

先手方落子显示正常,比赛结果正常

 


测试总结

通过测试游戏大厅页面的界面显示和匹配功能,得出以下结论:

游戏大厅页面的左上角“五子棋对战”字样正常显示,背景图片正常显示

玩家信息(用户名、分数、比赛场次、获胜场次)正常显示,

匹配功能正常,两个同级别玩家点击匹配按钮后,会匹配在一起。

通过对游戏大厅页面的界面测试和功能测试,并未在游戏大厅页面发现bug

3.3 性能测试

下面就来介绍五子棋项目性能测试的一个测试流程。这里我们使用jmeter进行测试

首先要创建一个梯度压测线程组(Stepping Thread Group),来慢慢增大我们对这两个接口的并发请求的数量

然后创建 HTTP Cookie 管理器,添加相关的用户信息

 

测试总结
通过测试游戏大厅页面的性能测试,得出以下结论:

单个用户进行注册、登录、游戏页面的时长和CPU占用率正常;

当少数用户用于访问页面时,加载时长任在可控范围内;

但是当大量用户同时进行匹配游戏时还是会出现卡顿,加载速度过慢的情况,该类情况后续进行优化

3.4 自动化测试

具体方法参考

自动化测试selenium(Java版)_selenium-java-CSDN博客

创建自动化测试脚本,首先创建一个工具类,封装好driver,并指定屏幕截图存放路径,使用隐式等待

package common;import io.github.bonigarcia.wdm.WebDriverManager;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.Duration;public class ChromeUtils {public static WebDriver driver;public static WebDriver createDriver(){if (driver==null){WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();//允许Chrome浏览器接受来自任何源的远程调试连接请求options.addArguments("--remote-allow-origins=*");driver = new ChromeDriver(options);//隐式等待,等待两秒,期间会一直不断的请求元素driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));}return driver;}public ChromeUtils(String url) {driver = createDriver();driver.get(url);}public void getScreenShot(String str) throws IOException {//     ./src/test/image///                     /2024-07-17///                                /test01-17453010.png//                                /test02-17453020.png//                     /2024-07-18///                                /test01-17453030.png//                                /test02-17453034.pngSimpleDateFormat sim1 = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat sim2 = new SimpleDateFormat("HHmmssSS");String dirTime = sim1.format(System.currentTimeMillis());String fileTime = sim2.format(System.currentTimeMillis());//./src/test/image/2024-07-17/test01-17453020.pngString filename ="./src/test/image/"+ dirTime +"/" + str + "-" + fileTime+".png";File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile,new File(filename));}
}

 登录功能的自动化测试

  public void LoginError(){//账号错误driver.findElement(By.cssSelector("#username")).sendKeys("test");driver.findElement(By.cssSelector("#password")).sendKeys("123456789");driver.findElement(By.cssSelector("#submit")).click();//确认Alert alert = driver.switchTo().alert();alert.accept();//密码错误driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();driver.findElement(By.cssSelector("#username")).sendKeys("hanmeimei123");driver.findElement(By.cssSelector("#password")).sendKeys("12345");driver.findElement(By.cssSelector("#submit")).click();//确认alert.accept();driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();//包含特殊字符driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();driver.findElement(By.cssSelector("#username")).sendKeys("hanmeimei%$^*&");driver.findElement(By.cssSelector("#password")).sendKeys("12345");driver.findElement(By.cssSelector("#submit")).click();//确认alert.accept();driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();}public void LoginRight() throws InterruptedException {driver.findElement(By.cssSelector("#username")).sendKeys("hanmeimei1");driver.findElement(By.cssSelector("#password")).sendKeys("123456789");driver.findElement(By.cssSelector("#submit")).click();//确认Alert alert = driver.switchTo().alert();alert.accept();//driver.close();}public void March(){driver.findElement(By.cssSelector("#match-button"));}
}

上述脚本存在隐式等待时间问题,我们尽量做到写出更好的测试脚本,这个需要积累经验后进行优化 


自动化检测登录和匹配等功能正常,无Bug;

四、测试总结


4.1 测试目标


确保五子棋游戏的基本功能正常运行,包括落子、判断胜负、悔棋等操作。

检查游戏在不同浏览器下的兼容性。

测试游戏的界面显示是否清晰、友好。

4.2 测试范围


功能测试

正常落子:测试每个可落子点是否能准确落子,并且不会出现错误提示或异常情况。

胜负判断:在不同的五子连珠情况(横、竖、斜)下,是否能正确判断胜负。

界面测试

棋盘显示:棋盘线条是否清晰,棋子显示是否正常,是否存在遮挡或显示错误的情况。

按钮功能:开始游戏、重新开始、悔棋等按钮的位置是否合理,点击响应是否及时。

游戏提示:如轮到哪方落子、胜负结果提示等是否准确显示

兼容性测试

在主流浏览器(如Chrome、Firefox、Safari、Edge)上测试游戏的运行情况,包括界面显示和功能操作。


4.3 测试结果


功能测试

正常落子:95%的可落子点都能正常落子,但发现少数边缘点在快速连续落子时会有短暂延迟。

胜负判断:在各种五子连珠情况下,胜负判断准确无误。

界面测试

棋盘显示:整体良好,但在小屏幕设备上棋盘和棋子的比例略显不协调。
按钮功能:所有按钮点击响应及时,但“重新开始”按钮在部分浏览器下的样式与设计稿有细微差异。

兼容性测试

在Chrome、Firefox和Edge浏览器上,游戏运行基本完美,只有一些小的样式差异.

4.4 缺陷及改进建议
缺陷:
少数边缘点落子延迟:可能是由于该区域的事件监听或逻辑处理存在性能问题。
小屏幕设备棋盘和棋子比例不协调:未针对小屏幕设备进行优化布局。


改进方案:
对边缘点落子的逻辑进行性能优化,减少延迟

相关文章:

  • LRU 和 DiskLRU实现相册缓存器
  • Python计算字符串距离算法库之textdistance使用详解
  • 【2025】win11安装JDK11
  • 2025年- H73-Lc181--22.括号生成(回溯,组合)--Java版
  • intelrealsense深度相机产品介绍
  • Linux(线程控制)
  • 安卓基础(ProGuard vs R8)
  • 『React』Fragment的用法及简写形式
  • React - 组件通信
  • 使用React+ant Table 实现 表格无限循环滚动播放
  • 自托管图书搜索引擎Bookologia
  • next,react封装axios,http请求
  • react 常见的闭包陷阱深入解析
  • 2025 cs144 Lab Checkpoint 3: TCP Receiver
  • React 列表 Keys
  • 【React】useId
  • Python打卡训练营day46——2025.06.06
  • Linux 服务管理与自启动配置全解析:rc.d、systemctl与service对比
  • Jpackage
  • vue-print-nb 打印相关问题
  • 中山市做网站/seo优化多少钱
  • 国外做的比较的ppt网站有哪些/百度竞价是什么工作
  • 如何做局域网网站/国外网站推广
  • 做网站市场大不大/免费做网站
  • 企业网站seo报价/广州婚恋网站排名
  • 高端型网站建设/做一个公司网站大概要多少钱