目录
一、项目背景
二、项目功能
三、测试计划
1、功能测试:
(1)测试用例:
(2)实际执行测试的部分操作/截图
2、自动化测试
3、性能测试
一、项目背景
1、五子棋对战游戏 采用了前后端分离的方法来实现,同时使用了数据库存储用户信息,将其部署到云服务器上。前端主要有:登录页面、注册页面、游戏大厅页面、游戏房间页面。以上模拟实现了最简单的五子棋游戏。结合后端实现了以下主要功能:登录、注册、匹配、对战以及强制登录功能。
2、但是该项目在显示玩家信息,并没有做太复杂,只把玩家的基本信息贴在页面上了。
3、基于WebSocket协议,实现了消息推送机制,玩家在第一时间能收到对方落子情况,该五子棋游戏项目实现了最基本游戏对战,支持多人同时进行游戏。
二、项目功能
该项目主要实现了以下几个功能:登录、注册、匹配、对战等功能。
1、登录:玩家的账号、密码已经存放在数据库中;当玩家输入正确的账号和密码,点击登录,会跳转到游戏大厅页面;当玩家输入错误账号或密码时,会有弹窗提示登录失败。
2、注册:当玩家没有账号时,可以进行注册账号,输入相应的账号密码,点击注册,会提示注册成功的提示弹窗,然后跳转到登录页面。
3、匹配:玩家在游戏大厅页面点击匹配按钮,会进入匹配队列中,当有另一个玩家也点击匹配时(并且这两玩家天梯分数相近),就会把这两玩家放到同一个游戏房间中,进行游戏对局。
4、对战:玩家进入游戏房间页面,该页面会有棋盘,屏幕会有提示信息轮到谁落子,该玩家才能落子,反之则不能;当棋盘出现 “五子连珠” 的情况,就会提示玩家获胜或失败信息,天梯积分也会有对应的修改,并有回到游戏大厅页面的提示按钮,点击就能回到游戏大厅页面。当有玩家意外退出该游戏房间,则判定没有退出的游戏房间的玩家获胜。
注意:玩家对战测试,必须要用两个不同浏览器登录不同的账号,否则会检测多开行为;同一个浏览器登录不同账户,进行匹配,服务器存储的Session都是同一个,所以会被判定为多开行为。
三、测试计划
1、功能测试:
(1)测试用例:
(2)实际执行测试的部分操作/截图
1)正常登录
2)正常注册
3)匹配
匹配成功:
4)对局(出现五子连珠)
2、自动化测试
自动化测试参考:五子棋项目自动化测试-CSDN博客
3、性能测试
使用 JMeter 进行简单的性能测试:针对登录、匹配功能进行简单的性能测试,设置同步定时器来模拟用户并发的效果。
因为匹配模块的接口使用的是WebSock协议,所以就不去拿到登录时Http里的会话信息了,直接访问匹配模块接口,并不影响性能测试的结果。下面是性能测试的操作步骤:
1、添加测试线程组,把登录请求和匹配请求添加进去,设置对应的路径。
2、用户可以有多个,所以要配置CSV数据文件设置,轮流使用不同用户进行登录。
3、添加查看接口树,测试登录请求和匹配请求是否正常。
4、添加 阶段性线程组(Stepping Thread Group),设置最大并发数为10;每隔3秒,在1秒之内增加5个线程;到达最大并发数后持续60秒;每隔1秒停止5个线程。
5、添加常用监听器:Active Threads Over Time、聚合报告、Response Times Over Time、Transactions per Second(TPS)
6、进行性能测试,性能测试结果如下:
Active Threads Over Time:
Transactions per Second(TPS):
Response Times Over Time:
聚合报告:
7、生成性能测试报告(生成性能测试报告的命令:Jmeter -n -t 脚本文件 -l 日志文件 -e -o 目录)
8、性能分析
在达到最大10线程数后,有一段时间的响应时间和吞吐量是较为稳定的,但在40秒时,响应时间突然增大,吞吐量也突然减少,后面又变得较为稳定,可能是系统不能稳定造成的,总体来说,设置最大10线程线程数还是较为合理的,是服务器能承受压力的范围之内。