当前位置 博文首页 > gdpencil的专栏:loadrunner模拟多用户打BOSS压力测试(网页游戏)

    gdpencil的专栏:loadrunner模拟多用户打BOSS压力测试(网页游戏)

    作者:[db:作者] 时间:2021-09-19 10:23

    测试工具: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.php_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多个玩家操作。




    cs