Loadrunner小知识积累(不断更新)

    专门发一个日志,作为Loadrunner小知识积累和总结,记录Loadrunner中我们经常注意不到的知识,对自己是一个提高,也希望把知识和经验分享给更多的人......

1.lr_think_time默认是没有启用。所以我们在执行测试或在回放的时候启用它。具体操作为:Vugen--》Vuser---》Runtime-settings-----》thinktime-----》选中Replay thinktime,其他设置根据实际需要。
关于thinktime的一个详细的介绍和用法,见:http://www.testage.net/html/19/n-155019.html
2.设置Rendezvous的时间。

    在Controller中,Scenarioc菜单-----》Rendezvous 进入就可看到目前脚本中的各个集合点,选中一个,然后点击“Policy”进入后,就可以设置集合点的属性,Rendezvous默认为30秒,可以重新设置成自己期望的值。

3.Step download timeout(sec) 设置。

    这个默认是120秒,但是经常我们要设置的更大一些,具体设置方法:Vugen--》Vuser---》Runtime-settings----》Preferences------》option,将Step download timeout(sec)默认值120s改为自己需要的值,其次要改变HTTP-reguest connnect timeout(sec)和HTTP-reguest receive timeout(sec)也为相应的值。


4.修改本机tcp连接数。

   因为个人pc机的默认的tcp连接数只有15个(xp),所以我们在模拟虚拟多个用户时,就会遇到tcp的连接限制,从而报错。修改的方法:windows下运行 Patch.exe
输入C,再输入你要的TCP/IP连接数字(一般为500~2000)回车确认
输入Y 回车确认。
倒计时15秒后结束。
接着再运行下Patch.exe,看连接数是不是由原来的10变成自己改了的数值。
Patch.exe 下载地址:http://www.touchboy.cn/2007/05/%E4%BF%AE%E6%94%B9windows-xp2003-%E7%9A%84tcpip%E8%BF%9E%E6%8E%A5%E6%95%B0/

6.对LR中报WSA_IO_pending的解析和解决

Message Code 27740

Overlapped transmission of request to '%1' for URL 'URL' failed.

The transmission of data to the server failed. It could be a network, router, or server problem. The word Overlapped refers to the way LoadRunner sends data in order to get a Web Page Breakdown.

Troubleshooting
Add the following statement to the beginning of the script to disable the breakdown of the "First Buffer" into server and network time: web_set_sockets_option("OVERLAPPED_SEND", "0");

 

web_set_sockets_option("OVERLAPPED_SEND", "0");

7.关于Error -27791: Error -27790:Error -27740:错误的解决方法:

错误如下:

Action.c(198): Error -27791: Server "www.zcpx.cn" has shut down the connection prematurely
Action.c(198): Error -27790: Failed to read data from server "
www.zcpx.cn": [10053] Software caused connection

abort
Action.c(198): Error -27740: Overlapped transmission of request to "
www.zcpx.cn" for URL

"http://www.zcpx.cn/userEntry.do" failed: WSA_IO_PENDING

 

解决办法:

在脚本的最前面加上web_set_sockets_option("OVERLAPPED","0");

 

8.LR中错误代号为27796的一个解决方法

问题:
曾经遇到过一个问题,在一次性能测试过程中,使用http协议的多用户向服务器发送请求。设置了持续时间,出现错误为:27796, Failed to connect to server 'hostname';port_ld': 'reason'.10048。

分析
因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

成功的解决方法:
在负载生成器的注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里,有如下两个键值:
TcpTimedWaitDelay
MaxUserPort
1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。
反复验证,问题解决。

.......

9.检查点一点说明;

web_reg_find();web_find();web_image_check();如果通过为返回值为1,反之为0;

举例:

f=web_image_check("1211873417140.jpg","",LAST);
if (f=1)
{lr_output_message("测试通过f=%d",f);}
else
{lr_output_message("测试不能通过f=%d",f);}

------------------------------------------------

10.以时间定义事务成败

double time_elapsed, duration, waste; 
merc_timer_handle_t timer; 
Action()
{
lr_start_transaction("ACCP");
timer = lr_start_timer(); 
lr_think_time(3);
time_elapsed = lr_end_timer(timer); 
// Convert to millisecond.s 
waste = time_elapsed * 1000; 
if(waste>3)
lr_end_transaction("ACCP", LR_FAIL);
else
lr_end_transaction("ACCP", LR_PASS);
return 0;
}
 


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值