51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3687|回复: 4
打印 上一主题 下一主题

请教:LoadRunner可以用于模拟大量玩家吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-1-7 20:55:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
没有用过loadrunner,想了解一下:
如果loadrunner可以“录制”一个玩家从登录到进入游戏打怪的整个过程,那么用LoadRunner来模拟一个玩家应该是没有问题的。
如果想扩展到多个玩家,LR可以做到吗?可以修改录制的网络包的内容吗(改为其他用户的用户名和密码)?


当然,上面仅仅是我的一些猜测,请各位大大不吝赐教啊!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-1-7 22:49:13 | 只看该作者

回复 1# 的帖子

貌似不能
因为网络包加密了,能解密就可以修改了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-1-8 17:32:36 | 只看该作者
基本上不太合适
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-1-8 18:36:00 | 只看该作者
大哥想法不错,可以和HP商量下加入下个版本的需求中。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-1-12 11:38:44 | 只看该作者
应该可以。这需要你首先对LR有所了解。录制游戏时通常使用windows sockets协议。
首先,录制一个登录脚本。如果没有加密,就简单很多。录制后要查看并了解通讯包内容(可能请教程序),找出登录参数,比如角色ID。
然后,你需要做的就是修改脚本,将角色ID参数化,比如角色ID为\x11\x00\x00\x00,只需将其替换为参数即可(比如<GamerID>)。如果该ID是需要从接收包中获取的,可以从包中截取出来做参数化。下面几个函数比较常用:lrs_save_param()用来获取包中某位置的字段(详细查看LR的帮助);lr_save_string()用来将变量保存入参数;lr_eval_string()取出参数值;
一个例子:
lrs_save_param ("socket0","buf4","GamerID",16,4);//截取buf4(一个数据包)中的字段(从第16开始截取4个字符),保存到GamerID
lr_output_message ("GamerID值为:%s",lr_eval_string ("<GamerID>"));//打印出该参数值,用来查看是否正确。

如果参数是加密传送的,可以使用外部的dll对参数加密,这个库文件(dll文件)有游戏对参数进行加密的接口,可以向程序求教或索要。
一个例子:动态链接库(dll)的局部调用
一个参数<GamerID>将其加密,先配置好参数。然后使用前将其加密。
char *str1;
char *str2;
str1=lr_eval_string ("<GamerID>");//取出GName值赋给str1
lr_load_dll("encode.dll");// 加载动态连接库,encode.dll是一个加密库的文件全名。
str2=(char*)encodeGID(str1);//调用库文件里面的接口函数,对str1进行加密。
lr_save_string (str2,"GamerID");//将str2的值,存入参数GamerID。
lr_output_message ("GamerID值为:%s",lr_eval_string ("<GamerID>"));//打印出该参数值,查看是否正确。
解密的方式与其类似。

配置好参数后,运行脚本,基本的登录一类的操作应该可以实现。由于游戏中收发包内容大都变化较大,做起脚本来比较困难,我目前也是处于探索阶段,希望大大们指点,大家一起多多尝试,多多交流。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-3 06:03 , Processed in 0.081065 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表