目录
项目介绍
测试用例设计
部分功能测试示例
自动化测试
测试范围
排除范围
自动化测试目录编辑
执行全部自动化测试用例
性能说明
总结
性能测试
结果分析
测试总结
项目介绍
该项目基于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棋盘的技术限制,未能实现对落子交互的自动化验证,这部分功能仍需依赖手动测试覆盖。针对登录接口所开展的梯度压力测试,其最终结果与预期高度相符,表明该接口在不同负载条件下均能保持较为出色的性能表现。