抵御百万级在线用户强压,服务器性能测试就该这么做!

发表于:2018-3-09 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Oliver    来源:DBAplus社群

  5、机器人模拟
  机器人模拟测试是对以上各种测试做了一个平衡, 通过高还原真实玩家的用户行为,模拟高并发场景,从而得到类似很多人同时游戏的测试效果。机器人模拟有三个优势:
  高还原游戏玩法,深度模拟真实用户行为:
  1.  并发性不受限制,从1W到10W,压力能够自主设置;
  2.  可以反复执行,便于性能调优回归;
  3.  实现7*24小时不断监控,在开发提交代码之后,版本在自动编译之后就跑新的测试,这样每天都能进行性能监控,在调优方面,完全地进行一个重复性测试,可以不断的进行回归和调优。
  这个方法的问题就在于机器人模拟需要专人开发,对测试者的开发能力,分析能力都有一个比较高的要求。
 
  说到这里,我们对之前所有的服务器性能测试方法进行了一个总结:
  我们可以发现,速度与准确性始终是对立的,如果游戏开发者队友服务器测试有一个明确的规划,对服务器压测有一定的时间预留,机器人模拟的效果是非常好的。
  如何实现机器人模拟
  那么我们到底是如何来开发一款进行服务器性能测试的机器人呢?
  整个开发过程主要可以概括为三大步骤,建模, 分析, 开发。
  第一步,建模。
  建模是什么呢,建模是为了模拟真实玩家行为,分为两种方法:
  1)探索典型玩家关键路径
  通过大量玩家数据的支撑,选择最多的行为路径,设计机器人模拟的行为。
  2)通过封测过程中的运营数据,生成专家视图
  这个方法就是通过去测试服中搜集用户的协议数据,并对这些协议数据进行分析,确定各自是什么行为,把用户的这些协议数据还原成为用户行为的操作过程就像是把一块块散乱的拼图重新组织起来一样。
  在这个过程中,最简单的是按比例组织,通过数据分析,发现用户登录,战斗各自占据多少比例,以这个比例来分配一定的人数进行登录和战斗。但是这个方式并不太适合游戏,对于游戏本身来说,一百个人不断的重复登录的行为,一百个人同时重复游戏的行为,显然是不符合逻辑的。
  那么在分析的过程中,采用概率的方式,是更加贴近一个真实用户的行为的。当模拟一个真实用户登录之后,有一定的可能性会重新登录,还有一部分可能性就进行战斗,例如机器人有10%概率重新登入,50%概率进行战斗。 同时我们还需要考虑对角色身上的装备数据, Cache的命中,数据库容量等等,目的是让机器人更接近真实用户,更加符合一个真实用户的行为。
  第二步,分析。
  那么我们会对客户端进行行为交互和协议分析。一方面,为后续协议开发实现做准备;另外,在登入的过程中,会产生大量的协议,如果没有对客户端进行分析,可能只是调用了登录的协议,从实际的协议交互上来说,一次登录可能包含了很多其他的协议信息,那这时我们实现登入就不能仅仅是个简单的登录协议,可能还包含拉取邮件信息,拉取好友信息等协议,两者之间对登入的性能差异影响非常大。
  第三步,代码开发。
  主要包含两部分:
  1)协议的开发,包括协议的实现,协议的解包等;
  2) 业务逻辑的组织,主要对上述游戏模型进行实现。
  服务器性能测试工具的使用
  不过令人遗憾的是,对于游戏开发者的实际情况来说,充足的测试时间并不是每次都可以保证的,而且对于模拟机器人的开发过程本身又是一个很大的投入,对于一些通用场景,如果能够有通用的平台代码可以调用,相信对于游戏开发者是一种极大的解放。
  对于服务器性能测试来说,好的测试要做到这样几点:
  业务场景模拟。可编码解析任意协议,实现复杂业务场景。
  发现瓶颈。支持使用场景中复杂的数据传输行为,比如“登录”“查看个人信息”等,更加真实的模拟用户行为,发现服务器问题;
  持续压力。实现7*24小时一定量级的服务器压力;
  触达极限。短时间内触达服务器的压力上限。
  灵活自定义。对于类似游戏的复杂混合场景,可以结合在线代码开发IDE,实现对任何标准或自定义协议的通信。


上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号