51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 63757|回复: 97
打印 上一主题 下一主题

性能测试工具篇之loadrunner(部分)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-6-13 12:45:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下部分是本人总结各大论坛faq和实际工作经验而来,属于<性能测试工具篇之loadrunner>部分内容。

问题解答篇
1.        监视服务器资源?
在Controller的场景运行中,在Graphs中选中System Resource Graphs下Windows Resources节点,点击Windows Resources的右键菜单项add measurements,加入你要监视的机器名称。注意监视的服务器必须启动Remote Registry Service。
2.        错误“the ip wizard does not support dhcp-enabled network cards.  your network card is either dhcp-enabled or configured with invalid settings”
这是由于ip Spoofer不支持动态获得ip
3.        找不到设置多IP运行方式
必须在Cotroller中设置Expert Mode才能设置多ip方式。
4.        解决lr编辑器中显示乱码的问题
loadrunner7.8版本中,在Virtual User Generator设置Tool->record options->advanced中support charset选项。
5.        LoadRunner7.5支持ie6的一个解决方法
在ie中,tool->internet选项,切换到高级页面,设置http1.1设置,选择通过代理连接使用http1.1
6.        修改WinSock协议生成的代码,参数化
    socket脚本的参数化数据在data.ws中.
建议同样的业务录制两遍,比较一下两个脚本中的data.ws,找找需要参数化的地方.
7.        分析结果中如何处理think time
Analysis 可以设定 Filter,Filter 就可以把 think time 过略掉。
8.        LoadRunner测试ftp模式的相关经验
什么叫做PASV mode(被动模式传送)?他是如何工作的?
FTP一般有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接。FTP服务程序一般支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode)。

先假设客户端为C,服务端为S.
Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

Actions()
{
char acTest[100];
char acTest2[100];
char* pcTest3;

//生成发送的串
sprintf(acTest,"kkkhhhh\r\n");
//指定发送的串
lrs_set_send_buffer ("socket0", acTest, strlen(acTest));
//发送,由于之前运行了lrs_set_send_buffer,所以这里的"buf0"参数无效
lrs_send("socket0", "buf0", LrsLastArg);

//接收返回的串
lrs_receive("socket0", "buf1", LrsLastArg);
//把返回的串放到变量中
pcTest3=lrs_get_received_buffer ("socket0", 0, -1, NULL);
//对返回串中的数据操作
if (pcTest3[0]=='k')
{
lrs_set_send_buffer ("socket0", pcTest3, strlen(pcTest3));
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
}

//等待一段时间
lr_think_time(6);

return 0;
}

PASV模式

data.ws:

send buf25
"TYPE I\r\n"
recv buf26 20
"200 Type set to I.\r\n"
send buf27
"ASV\r\n"
recv buf28 50
"227 Entering Passive Mode (10,19,119,104,133,58)\r\n"
send buf29
"RETR startweblogic\r\n"
recv buf30 74
"150 Binary data connection for startweblogic (10.3.9.3,2707) (53 bytes).\r"
"\n"
recv buf31 53
"cd ./user_projects/mydomain\n"
"nohup startWebLogic.sh &\n"
recv buf32 31
"226 Binary Transfer complete.\r\n"

Actions:
lrs_send("socket4", "buf25", LrsLastArg);
lrs_receive("socket4", "buf26", LrsLastArg);
lrs_send("socket4", "buf27", LrsLastArg);
lrs_receive("socket4", "buf28", LrsLastArg);
lrs_send("socket4", "buf29", LrsLastArg);
lrs_create_socket("socket6", "TCP", "LocalHost=0", "RemoteHost=10.19.119.104:34106", LrsLastArg);
lrs_receive("socket4", "buf30", LrsLastArg);
lrs_receive("socket6", "buf31", LrsLastArg);
lrs_close_socket("socket6");
lrs_receive("socket4", "buf32", LrsLastArg);

注意其中的buf27,发出PASV命令,server在buf28返回端口号“133,58”,133*256+58=34106,于是client端就有这一句“lrs_create_socket("socket6", "TCP", "LocalHost=0", "RemoteHost=10.19.119.104:34106"”,这里面的34106端口号就是这样计算出来的。以后每次lrs_create_socket的时候,就要从前面的PASV应答包中解出端口号来。

非PASV模式

data.ws:
send buf28
"TYPE I\r\n"
recv buf29 20
"200 Type set to I.\r\n"
send buf30
"ORT 10,3,9,3,11,96\r\n"
recv buf31 30
"200 PORT command successful.\r\n"
send buf32
"RETR startweblogic\r\n"
recv buf33 74
"150 Binary data connection for startweblogic (10.3.9.3,2912) (53 bytes).\r"
"\n"
recv buf34 53
"cd ./user_projects/mydomain\n"
"nohup startWebLogic.sh &\n"
recv buf35 31
"226 Binary Transfer complete.\r\n"

Actions:
lrs_send("socket4", "buf28", LrsLastArg);
lrs_receive("socket4", "buf29", LrsLastArg);
lrs_create_socket("socket7", "TCP", "LocalHost=0", "Backlog=1", LrsLastArg);
lrs_send("socket4", "buf30", LrsLastArg);
lrs_receive("socket4", "buf31", LrsLastArg);
lrs_send("socket4", "buf32", LrsLastArg);
lrs_receive("socket4", "buf33", LrsLastArg);
lrs_accept_connection("socket7", "socket8");
lrs_close_socket("socket7");
lrs_receive("socket8", "buf34", LrsLastArg);
lrs_close_socket("socket8");
lrs_receive("socket4", "buf35", LrsLastArg);


注意,buf30中的“11,96”就是client端监听的端口号,11*256+96=2912,而在此之前,client端是先lrs_create_socket了,也就是说,这个2912是在lrs_create_socket的时候生成的监听端口号,然后用发给server端,让server端连过来。此脚本要正常执行,就必须在lrs_create_socket之后取出socket7的监听端口,然后放到"ORT 10,3,9,3,11,96\r\n"包中(修改11和96),发给server端。
9.        指定Scenario运行时间
设定了start time,然后必须start scenio
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-6-14 10:16:03 | 只看该作者
绝世好帖,期待继续~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2004-6-18 17:50:42 | 只看该作者
经验共享,利国利民^_^
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-6-25 18:00:22 | 只看该作者
写的真好。送玫瑰
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-12-6 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2004-6-29 15:26:29 | 只看该作者

    性能测试工具篇之loadrunner(部分)

    请教高手:关于监视服务器资源,我添加服务器的计数器,可是报错
                   cannot connnect to machine 192.168.1.10
                    details:拒绝访问。
    我检查过服务器已经启动Remote Registry Service 服务,请问是什么原因导致添加计数器失败!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2004-6-29 15:34:02 | 只看该作者
    还要保证你要有服务器的管理员账户
             你在监视服务器前,先登用管理员账户远程登陆陆服务器!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-6 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2004-6-30 11:46:45 | 只看该作者

    性能测试工具篇之loadrunner(部分)

    多谢!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2004-7-20 12:38:48 | 只看该作者

    提供Virtual User Generator的脚本代码实例

    谁能提供Virtual User Generator的脚本代码实例
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2004-8-11 18:06:44 | 只看该作者
    谢谢,我正在学!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2004-8-25 09:47:56 | 只看该作者
    好东东,难得看到讲这么具体的!
    项了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2004-8-29 11:45:30 | 只看该作者
    总结的不错。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2004-9-6 15:12:00 | 只看该作者

    写得好,没办法,顶一下

    写得好,没办法,顶一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2004-9-7 15:02:49 | 只看该作者

    请问楼主

    我的lr8.0试用版的运行时虚拟用户在哪里设呀?我设的200个,但只运行10个。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2004-9-8 16:06:08 | 只看该作者
    好贴。谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2004-9-14 11:27:48 | 只看该作者
    鼓励继续。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2004-9-14 12:55:18 | 只看该作者

    谢谢版主啦

    正在学习中。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2004-9-28 10:27:26 | 只看该作者
    感谢楼主的辛勤劳动!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2004-10-9 14:49:58 | 只看该作者

    好,谢谢

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2004-10-15 09:21:12 | 只看该作者
    好帖!继续期待ing……
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2004-10-18 12:40:32 | 只看该作者
    Originally posted by wky168 at 2004-9-7 03:02 PM:
    我的lr8.0试用版的运行时虚拟用户在哪里设呀?我设的200个,但只运行10个。

    试用版本的License,只能并发10个虚拟用户。
    要想运行更多的虚拟用户,需要申请正式的License
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-6-17 19:04 , Processed in 0.103591 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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