1.录制时报错LoadRunner报错Host socket0 is unknown. Error code : 9008
这是因为在vuser_init.c中"RemoteHost= http://192.168.1.229:8110"才报以上的错误,
改成"RemoteHost=192.168.1.229:8110",就运行成功了!
修改脚本为:
lrs_create_socket("socket0","TCP","RemoteHost=47.92.127.107:8180", LrsLastArg);
2.Error : socket1 - Software caused connection abort. Error code : 10053
解决方法:把TCP改为UDP
协议从TCP改为UDP,能多次迭代成功
修改的脚本:
lrs_create_socket("socket0","TCP","RemoteHost=47.92.127.107:8180", LrsLastArg);
改为
lrs_create_socket("socket0","UDP","RemoteHost=47.92.127.107:8180", LrsLastArg);
但是这样修改后会影响分析结果,Total Throughput (bytes)、Average Throughput (bytes/second)均为0.
最后发现根源是录制时协议选错,应该是WEB(HTTP/HTML),不是windows socket。
3.运行场景时,报error
Action.c(7): Error: Socket descriptor not found. Hint: the problem might be solved applying the following: (1) Update Run-Time Settings to Run Vuser as a process. (2) Add the following line into mdrv.dat, [lr_socks] section: 'ExtCmdLineConc=-UsingWinInet Yes'.
根据上述LR给出的提示,修改
1) Run-Time Settings to Run Vuser as a process
2) 安装文件dat下查找mdrv.dat,[lr_socks]部分加上ExtCmdLineConc=-UsingWinInet Yes
上面操作设置之后,仍然报错,点击停止,在Diagnostics下Configuration,将Web Page Diagnostics选项disable掉。
这样就解决了!
4.运行场景最后出现Rendezvous release failed,网上查可能是运行主机内存不足导致的,可是才同时30个VGen,应该不会是这个原因。
网上资料查询得到,根据经验,每生成一个虚拟用户,需要花费负载生成器大约 2M 的内存空间。通常运行 controller的主机很少用作负载生成器。负载生成器的工作多由其他装有 LR Agent的PC 机来担任。如果负载生成器内存的使用率大于了 70%,负载生成器就会变成系统的瓶颈,导致性能测试成绩下降。这种问题需要添加负载生成器来解决。一台 512M内存的 PC 机大约可以生成 80 个左右的负载,而一台 256M 内存的 PC 机大约可以生成50到 60 个左右的负载。
解决方法:把集合点的超时时间由1秒改为30秒,再次运行3次,没再出错。