压力测试

来源:互联网 发布:知乎发现不一样的王麟 编辑:程序博客网 时间:2024/05/01 20:01
我自己测试的方式如下:
1)先测Unit,这个没啥好说的,软件工程那一套,基本保障覆盖。
2)单接口压力测试。这里是用fake数据使用自己开发的压测脚本进行测试,基本上一个接口要测试5分钟的样子,期间保障两台机器同时并发300个进程不间断发包。
3)机器人测试。这个稍微麻烦点……总之就是在跑机器人脚本,模拟一个玩家可能进行的操作,操作是随机的(除非某些关联操作,会写在一起),然后搞起10W+个机器人跑啊跑啊一跑就是两三天……
4)采集线上数据。任何测试都模拟不了线上……无论如何线上都可能出现BUG的,所以……呵呵呵

测试应该分为几个阶段
(1)单元测试,也就是程序员自己写的程序。自己测试自己的逻辑代码
(2)合并内网测试,在内网的机器上跑通所有的逻辑,一般有专门测试人员完成。
(3)内网压力测试,测试某些指令的性能参数。可以重复数据包。
(4)内测,邀请一些玩家进入内测服务器查看服务器的稳定性。
(5)公测,放开注册,克隆服务器,让大量玩家进入。

继承jmeter的AbstractJavaSamplerClient写的机器人,结合jmeter的线程和远程管理功能做压力测试

我觉得一个是强度测试 一个是代码覆盖测试。强度测试就找具有代表性的功能 循环发,或者多个代表性的协议搭配循环发,主要来看服务器性能参数的。代码覆盖测试就是一个小机器人 尽可能覆盖所有协议 多跑些时间 看内存泄漏等等。

测压力最好是机器人,机器人对功能模块的覆盖越完整越好。用数据回放做压力测试意义不大

你可以尝试开源游戏服务器端框架firefly,Firefly Game Server Framework
有开源的压力测试工具下载!

用脚本模拟玩家操作 也就是所谓的机器人 测一天 然后主要看网络流量和内存 当然前提是你所测试的逻辑是没有问题也不会造成当机

可以让客户端把发送的消息存储到一个文件里(按一定的格式),然后写一个程序,按你们定义的格式把消息读出来一条条发送,然后起多个线程同时发送,就变成一个很强大的机器人了。不过要注意一些有顺序要求的消息要特殊处理,还有一些玩家之间的交互操作是测不了的(需要特殊处理)。一般的跑跑足够了。

我们的作法是自己写工具,模拟前台发协议到后台做测试。一些主要的功能才做压力测试,比如同时注册,最大在线,战斗,地图移动,数据存取等。

通常都是私有协议。用脚本语言写压力测试工具最好,快速高效也便于维护。

把所有的debug日志都打开,从前端用loadrunner之类的去做。

看是什么协议了,如果LR直接支持协议的,建议还是使用现有的工具吧
0 0
原创粉丝点击