LoadRunner:页游压力测试

一个简单的LoadRunner测试网页游戏压力流程性整理,在此做个备忘。


需求:测试页游戏WebGame的服务器承载能力、并发量

工具:Cacti、LoadRunner、Visual VM

  Cacti:监测服务器的网络及负载

  LoadRunner:压力测试脚本的编写及压力场景设计

  VisualVM: JVM运行状态监控


Step1:为什么选择这样的工具

  基于http+socket的连接请求,客户端as、服务器java

  http+socke协议:选择LoadRunner11中的双协议[Web(HTTP/HTML))+Windows Sockets]

  服务器java:VisualVM可直接监控JVM运行状态及分析JVM消耗的软件

  Cacti:服务器环境搭建于linux的Centos


Step2:录制脚本

  在LoadRunner11中使用双协议[Web(HTTP/HTML))+Windows Sockets]进行脚本录制,先录制一个角色的登陆

  建议:

    a:游戏的账号名与角色名保持一致,简化参数化的复杂度

    b:第一次录制的时候,尽量简化在游戏中的操作(过多的操作只会生成过多的LR脚本,增加分析脚本的负担)

    c:确定录制到脚本信息的有用性,不要存在有干扰的信息。若本机LR无法正常使用,可选择安装一台VM或者找一台纯净的机器进行

  双协议选择可参考:http://www.cnblogs.com/s1099312273/archive/2013/05/31/3110878.html


Step3:调整脚本(参数化、精简)

  针对上面录制的脚本,自己先多看几编,分析下客户端真实登陆流程。再与程序沟通,确定正确的登陆与验证流程。

  需要解决的问题:

    a:登陆时如果通过登陆服、游戏服验证

    b:签名验证如何通过验证

    c:分析并找出Action.c及data.ws中有可参数化的数据,如角色名,时间戳

    d:删除不必要的脚本信息

  本阶段需要与程序人员进行沟通,了解服务器验证流程。


Step4:回放脚本、场景创建

  回放Step3中调整后的脚本,确保在Vuser Generator中可正常回放。

  使用Controller创建并发,并创建对应的场景。如:每秒并发100人登陆持续30秒,2000人持续在线20小时等。

  建议:

    a:同一台机器不要登陆过多的游戏账号,最好分布到不同的机器上

    b:每次在跟场景时,记录每次登陆时的时间与在游戏中的真实角色的操作感

    c:及时查看每个场景中并发用户的运行情况

    d:每次测试时,最好把服务器重启,保证不会存在内存数据,影响数据的准确性


Step5:最大承载、并发量

  调整场景中数据,测试出服务器的最大并发量及最大承载量。

  测试时适当的调整不同场景下的并发量,协调服务器的总负载。

  得到当前服务器的最大承载、并发量


Step6:总结

  分析出当前瓶颈,产出测试报告,制定下次测试的计划与目标。


  That's all.

  感谢程序部同学、测试部的兄弟们及网友:天空对我的帮助和支持。

原文地址:https://www.cnblogs.com/s1099312273/p/3178030.html