多人五子棋联机对战平台 测试报告

news2025/4/20 20:05:35

目录

项目介绍

测试用例设计

部分功能测试示例 

自动化测试

测试范围

排除范围

 自动化测试目录​编辑

 执行全部自动化测试用例

性能说明

总结

性能测试

结果分析

测试总结 


项目介绍

        该项目基于WebSocket实现实时通信,采用SSM框架构建在线五子棋多人联机对战网页。前端通过HTML+CSS+JS实现实时棋盘更新,后端采用分层设计(API层、Config层、Game层、Pojo层),确保高内聚低耦合。功能包括用户登录、注册、实时匹配对战、棋盘状态同步、游戏结果记录及积分排名。通过多线程技术处理并发请求,保障高并发情况下的流畅运行和系统稳定性。

测试用例设计

        设计测试用例一般从功能测试、界面测试、性能测试、易用性测试、安全性测试、兼容性测试等六个方面进行设计,多人五子棋联机对战平台是一个web网页,主要针对核心功能进行测试,测试功能点如下:

部分功能测试示例 

直接点击提交注册, 提示用户名不能为空, 校验正常

 输入用户名, 点击提交注册, 提示密码不能为空, 校验正常

输入用户名,但是两次输入的密码不一致, 提示密码不一致, 校验正常 

输入合法的用户名和密码, 注册通过, 校验正常

 成功登录后,检查对战大厅模态窗, 在线人数显示, 玩家信息, 排行榜, 匹配按钮状态, 校验正常

 点击匹配, 检查页面样式变换是否正常, 匹配按钮状态切换是否正常, 校验正常

 

匹配成功,检查页面元素变换是否正常, 提示弹幕是否正常, 校验正常

进入对局, 检查双方落子交互同步是否正常, 校验正常

 对局胜利, 检查玩家返回游戏大厅, 积分变换,胜率变换是否正常, 校验正常

自动化测试

        本次自动化测试覆盖以下核心页面及功能模块,暂不包含五子棋对战交互测试(因棋盘基于Canvas实现,棋子定位难度较高):

测试范围

1. 注册页面(RegisterPage)

用例编号测试场景验证点
REG-01页面元素加载检查用户名输入框、密码输入框、确认密码输入框、提交按钮正常显示
REG-02用户已存在提示“注册失败”
REG-03密码不一致提示“密码不一致”
REG-04密码为空提示“密码不能为空”
REG-05成功注册跳转至登录页面

总计:5 个用例


2. 登录页面(LoginPage)

用例编号测试场景验证点
LOGIN-01页面元素加载检查用户名输入框、密码输入框、提交按钮正常显示
LOGIN-02密码错误提示“登录失败”
LOGIN-03用户不存在提示“登录失败”
LOGIN-04成功登录跳转至游戏大厅

总计:4 个用例


3. 游戏大厅(GamehallPage)

用例编号测试场景验证点
HALL-01页面元素加载检查用户信息、排行榜、匹配按钮正常显示
HALL-02排行榜查看与关闭排行榜数据加载正常
HALL-03多用户并发匹配第二个玩家成功加入并触发匹配

总计:3 个用例


4. 对战房间(GamePage)

用例编号测试场景验证点
GAME-01页面元素加载检查棋盘和行棋日志正常显示
GAME-02玩家主动退出游戏返回大厅并关闭连接
GAME-03胜利结算及积分更新积分变化并返回大厅

总计:3 个用例


最终统计

测试模块用例数量
注册页面5
登录页面4
游戏大厅3
对战房间3
总计16
排除范围
  • 五子棋对战交互:因棋盘通过Canvas渲染,棋子动态生成且缺乏可定位元素,暂未纳入自动化测试。

  • 复杂异常场景:如网络中断、服务端异常等需手动验证的场景。

多人五子棋联机对战平台 码云链接:

GobangAutoTest · 高耳机/test_web - 码云 - 开源中国https://gitee.com/High-Earphonescode/test_web/tree/master/GobangAutoTest

 自动化测试目录
 执行全部自动化测试用例

整体运行时间约41.2秒,测试用例全部通过 

性能说明

动态元素处理策略

        弹幕/POP元素:通过显式等待(ExpectedConditions)确保获取最新内容,避免残留弹幕干扰

        强制等待:因云服务器带宽限制,部分操作用Thread.sleep()保底(如弹窗消失、页面跳转)       

        这些因素限制了自动化测试的整体运行时长 

// 示例:显式等待弹幕加载(GamehallPage.java)
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".toast.Andu")));
Thread.sleep(300); // 确保动画完成
总结

        当前脚本在动态元素稳定性云环境适应性间取得了平衡,后续可通过渐进式优化进一步提升效率。

性能测试

        本次性能测试采用Jmeter测试工具,针对登录接口开展梯度压力测试。鉴于服务器资源有限,测试范围仅聚焦于该接口。

        配置: 从 0 秒开始,线程数逐渐增加,每 2 秒增加 5 个线程,直到达到 20 个线程。 在 20 秒时,线程数保持不变,持续 20 秒。 从 40 秒开始,线程数逐渐减少,每 2 秒减少 5 个线程,直到所有线程停止。

结果分析

响应时间表现

        根据“Response Times Over Time”图表数据,系统响应时间在测试周期内呈现一定浮动,尽管在测试后期出现阶段性增长,但整体仍在可接受范围内。这表明系统在高负载场景下具备一定的弹性适应能力,但可能存在进一步优化的空间以提升稳定性和响应效率。

事务吞吐量表现

        通过“Transactions per Second”图表观察到,系统事务吞吐量在测试过程中先呈现温和上升趋势,随后在后期出现小幅调整。这种动态变化可能反映了系统在不同负载阶段的资源分配策略,初步推测系统具备良好的初始扩展性,但持续高吞吐能力仍有提升潜力。

异常请求分析

        经“汇总报告”与“聚合报告”综合统计,本次测试中异常请求占比仅为0.12%,体现了系统在极端负载下的稳健性。极低的错误率表明核心架构具备较强容错能力,但个别非预期行为仍需深入分析,以确保系统在全场景下的可靠性。

结论

        综合测试数据,系统在高负载环境下展现了良好的基础性能,但仍存在细微优化空间。

测试总结 

        在本次五子棋对战平台的自动化测试过程中,整体测试工作顺利完成,所有测试用例均通过验证,系统核心功能运行稳定。测试过程中发现的问题(如动态元素加载时序、弹幕残留等)均已通过显式等待和条件判断机制得到有效解决。特别是在多用户并发匹配和游戏状态切换等关键流程中,系统表现符合预期,验证了基础功能的可靠性。

        然而,受限于当前云服务器带宽资源,测试执行效率受到一定影响。为确保测试稳定性,脚本中不得不增加部分硬性等待(Thread.sleep()),导致整体测试时间延长至41.2秒。此外,由于Canvas棋盘的技术限制,未能实现对落子交互的自动化验证,这部分功能仍需依赖手动测试覆盖。针对登录接口所开展的梯度压力测试,其最终结果与预期高度相符,表明该接口在不同负载条件下均能保持较为出色的性能表现。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会

2025年4月15日至16日,备受关注的第二届中国人形机器人与具身智能产业大会已在北京成功举行。作为国内前沿科技及产品服务领域的重要参与者,欣佰特科技携众多前沿产品精彩亮相,全方位展示了其在人形机器人与具身智能领域的创新产品。 在本次大…

windows安装hadoop-3.3.5(图文教程)

本章教程,记录在Windows操作系统上安装hadoop-3.3.5的整个过程。 一、基础环境准备 JDK版本:java version “1.8.0_431” ,并且配置JAVA_HOME系统环境变量 hadoop版本:3.3.5,配置HADOOP_HOME系统环境变量。 下载地址:https://archive.apache.org/dist/hadoop/common/hado…

【eNSP实验】OSPF单区域配置

简介 OSPF(开放最短路径优先)是一种基于链路状态算法的内部网关协议(IGP),用于自治系统内部动态路由。其核心机制为:各路由器通过泛洪链路状态通告(LSA)同步网络拓扑,构…

【技术派后端篇】ElasticSearch 实战指南:环境搭建、API 操作与集成实践

1 ES介绍及基本概念 ElasticSearch是一个基于Lucene 的分布式、高扩展、高实时的基于RESTful 风格API的搜索与数据分析引擎。 RESTful 风格API的特点: 接受HTTP协议的请求,返回HTTP响应;请求的参数是JSON,返回响应的内容也是JSON…

鸿蒙语言基础

准备工作 去鸿蒙官网下载开发环境 点击右侧预浏览,刷新和插销按钮,插销表示热更新,常用按钮。 基础语法 string number boolean const常量 数组 let s : string "1111"; console.log("string", s);let n : number …

在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南

引言 在生成式 AI 浪潮中,GPU 常被视为大模型推理的唯一选择。然而,随着 ARM 架构的崛起和量化技术的成熟,CPU 推理的性价比逐渐凸显。本文基于 Amazon Graviton 系列实例与 llama.cpp 工具链,实测了 Llama 3、DeepSeek 等模型的…

每日定投40刀BTC(14)20250409 - 20250419

定投 坚持 《磨剑篇》浮生多坎壈,志业久盘桓。松柏凌霜易,骅骝涉险难。砺锋临刃缺,淬火取金残。但使精魂在,重开万象端。

服务治理-服务注册

一个服务在真实项目部署的时候,如果压力较大,会做多实例部署。 在IDEA里面做多实例部署的话,只需要配置多个启动项。

NestJS——多环境配置方案(dotenv、config、@nestjs/config、joi配置校验)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

MongoDB导出和导入数据

安装mongodump工具 参考文章mongodump工具安装及使用详解_mongodump安装-CSDN博客 MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装,而是需要自己手动安装。 官方网站下载链接:Download MongoDB Command Line Database Tools …

Serving入门

ServingHelloWorld Serverless 一个核心思想就是按需分配,那么 Knative 是如何实现按需分配的呢?另外在前面已经了解到 Knative Serving 在没有流量的时候是可以把Pod 缩容到零的。接下来就通过一些例子体验一下 Knative 缩容到零和按需自动扩缩容的能力…

【HDFS入门】HDFS数据冗余与容错机制解析:如何保障大数据高可靠存储?

目录 1 HDFS冗余机制设计哲学 1.1 多副本存储策略的工程权衡 1.2 机架感知的智能拓扑算法 2 容错机制实现原理 2.1 故障检测的三重保障 2.2 数据恢复的智能调度 3 关键场景容错分析 3.1 数据中心级故障应对 3.2 数据损坏的校验机制 4 进阶优化方案 4.1 纠删码技术实…

UE学习记录part19

231 insect: insect enemy type 创建dead动画资源 往insect head上添加socket 创建攻击root motion动画。motion warping需要与root motion合作使用 为buff_blue创建物理资产 设置simulate physic使sinsect死亡后能落到地板上而不是漂浮在空中,要将die函数设置为 -…

运行后allure报告没有自动更新(已解决)

pycharm直接运行run.py文件, allure生成的报告都没有更新,需要手动删除旧报告后再次运行才可以 pytest.ini [pytest]testpaths testcases/ addopts --alluredir ./report/result --clean-alluredir run.py主要代码 if __name__ "__main__&qu…

微信小程序 时间戳与日期格式的转换

1. 微信小程序 时间戳与日期格式的转换 微信小程序中的时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。例如现在北京时间2015-12-31 17:00:00的时间戳是1451552400,就是指从北京时间1970-01-01 08:00:00到…

【深度学习—李宏毅教程笔记】Transformer

目录 一、序列到序列(Seq2Seq)模型 1、Seq2Seq基本原理 2、Seq2Seq模型的应用 3、Seq2Seq模型还能做什么? 二、Encoder 三、Decoder 1、Decoder 的输入与输出 2、Decoder 的结构 3、Non-autoregressive Decoder 四、Encoder 和 De…

【人工智能学习-01-01】20250419《数字图像处理》复习材料的word合并PDF,添加页码

前情提要 20250419今天是上师大继续教育人工智能专升本第一学期的第一次线下课。 三位老师把视频课的内容提炼重点再面授。(我先看了一遍视频,但是算法和图像都看不懂,后来就直接挂分刷满时间,不看了) 今天是面对面授…

使用 Docker 安装 Elastic Stack 并重置本地密码

Elastic Stack(也被称为 ELK Stack)是一个非常强大的工具套件,用于实时搜索、分析和可视化大量数据。Elastic Stack 包括 Elasticsearch、Logstash、Kibana 等组件。本文将展示如何使用 Docker 安装 Elasticsearch 并重置本地用户密码。 ###…

利用 Deepseek 和 Mermaid 画流程图

提示词 你是一个产品经理,请绘制一个报名比赛的流程图,要求生成符合Mermaid语法的代码,具体要求如下: 1.注册账号 2.填写报名信息 3.参加比赛 4.查看比赛结果 生成的结果 flowchart TDA([开始]) --> B[注册账号]B --> C{账…

学习笔记: Mach-O 文件

“结构决定性质,性质决定用途”。如果不了解结构,是很难真正理解的。 通过一个示例的可执行文件了解Mach-O文件的结构 Mach-O基本结构 Header: :文件类型、目标架构类型等Load Commands:描述文件在虚拟内存中的逻辑结构、布局Data: 在Load commands中…