|
测试工具:loadrunner
测试环境:某网页游戏压力测试
测试案例:600个玩家打BOSS
测试过程:
一、配置BOSS出生。
将BOSS出生点设置到在南京-木头。这里只能设置到城市,在哪个点,需要刷一下BOSS的位置,因为以下脚
本录制是打木头这个点。
二、loadrunner录制脚本。
1.启动loadrunner录制脚本
1)新建web脚本。 file >> new >> 选择web (HTTP/HTML)
2)在弹出窗口填写要测试的游戏服地址(URL Address),其它的使用默认选项即可。
3)完成后跳到游戏登录界面,输入帐号登录。(最好使用帐号,比较有规则一点,方便使用批量类似的玩家,
如acname21051)
4)操作角色去打BOSS。(这里需要注意,默认玩家是开启和平状态的,这里有切换到杀戮状态的操作,否
则打BOSS可能会失败)
5)打完BOSS退出,按录制停止键。
2.确认脚本能够重复运行。
录制完成后,进步任务第二步replay,重播一下是否脚本能够正常打BOSS。
获得BOSS战利品才算完成,如果只是杀过去了,没有获得奖励,那肯定是某个地方出错了。
测试过程中有两种情况会导致不能获得奖励:1)玩家没有开启杀戮状态。2)脚本将忽略操作过程中的思
考时间忽略掉了,打BOSS是有时间控制的,必须保留操作思考时间。(设置方法:按F4,在Think Time栏,选
中Replay time / As recorded)
3.批量模拟玩家打BOSS。
1)按快捷菜单栏的Tree键查看树脚本。
2)找到Submit Data:index.php 分支,双击。
3)会弹出属性框,包括选项nickname,accountname,up,双击accountname后面的ABC按钮.(如果使用角色
登录则用nickname)
4)新建一个变量,在名字栏填写acname
5)点击属性选项,进入变量设置。
6)按Create Table按钮,确认建立一个列表。
7)现在可以在表格里面填写你要登录的批量帐号,这里可以点下面的Edit with notetpad可以用文本操作,
批量写入一批帐号即可。
8)关闭属性窗口,回到建立变量窗口点OK.
9)这时回到变量列表窗口,accountname的value值,已变成了{acname},表示这里提交数据,将这个变量使
用不同的值去登录游戏。
5.定义打BOSS事件,方便监测数据。这里有三个接口事件:打BOSS前处理,战斗,打完后处理。
1)查看一下事件所在的支点,一般在最后的几个PHP调用接口,例如这里最后三个PHP请求事件是gateway.p
hp_13,gateway.php_14,gateway.php_15。如果找不到,就搜索BossBattleStart,BossFight,BossBattleFinish,
找到相应的支点吧。
2)在这三个支点前后分别加入事务开始和结束标志。
6.保存脚本为s7236_boss。
三、运行压力测试。
1.打开loadrunner >> Run Load Tests
2.新建一个测试( file >> new ),选择manual Scenario确认。
3.增加用户组(Add Group),组名随便定义 ,将人数设置为600,Load Generator Name设置为locahost,下面选择为
s7236_boss选项。
4.在Global Schedule窗口,设置启动用户和结束用户量。这里指多少时间启动或停止多少用户。
5.设置完成就可以点击播放按钮,开始压力测试。
四、测试结果分析。
在客户端,可以查看请求数据的各种状态,包括之前定义事务的响应时间,每秒点击数,每秒有多少用户
在操作。
在服务端,可以实时查看,有多少数据库操作正在运行(/root/mysql_processlist),如果很多进程在等待,
实际就是玩家在打BOSS卡的现象了。
五、测试总结。
本测试主要是使用loadrunner来模拟几百个玩家,同时在打BOSS的情况。如果程序得到改善,将可以从这里
测试体现。
测试过程主要分为录制脚本和运行脚本两部分,如果能够看懂loadrunner的说明文档,懂得基本的录制和运
行操作。
其实就剩下两个问题:
1)将测试脚本流程走通,其中可能会遇到打BOSS没有奖励的情况,只按上述文档正确设置应该就没有太大
问题。
2)修改脚本,将模拟1个玩家操作,修改为N多个玩家操作。
|
|