1.lr_think_time默认是没有启用的。所以我们在执行测试或在回放的时候启用它。具体操作为:Vugen--》Vuser---》Runtime-settings-----》thinktime-----》选中Replay thinktime,其他设置根据实际需要。
关于thinktime的一个详细的介绍和用法,见:http://www.testage.net/html/19/n-155019.html
2.设置Rendezvous的时间。
3.Step download timeout(sec) 设置。
4.修改本机tcp连接数。
输入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的解析和解决
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; }