一、设置虚拟IP地址
首先,load Generator机器必须使用固定的IP,不能使用动态IP
确定网络中不冲突的IP地址
打开:开始-〉程序-〉loadrunner-〉tools-〉ip wizard,如图
说明:增加新IP选择第一项;使用保存的文件增加IP选择第二项;释放已经设置的IP选择第三项。
点“下一步”,如图
此步让输入web server的IP地址(尚不清楚有何意义),不输入,直接点‘下一步’,如图:
说明:使用remove按钮可以删除选定的虚拟IP。
点add按钮,如图:
说明:‘检查新IP是否已经存在’选项并没有起作用;根据输入的IP的第一个值和数量,自动添加到虚拟IP列表中,例如:192.168.67.140 4,则增加的虚拟IP是:192.168.67.140、192.168.67.141、 192.168.67.142、192.168.67.143。
点ok按钮,如图:
点“完成”按钮,如图:
说明:使用Save as…可以将本次增加的IP保存成.ips文件,下次再使用时就可以直接选择此文件了。
点‘OK’按钮即可。
现在需要重启计算机。
(重新启动计算机后,设置的虚拟IP都生效了,此时使用ping会发现都能ping通,并且本机的IP也被改成了第一个虚拟IP地址。确认虚拟IP是否都生效的方法:在运行中输入cmd,在命令窗口录入ipconfig/all,然后就能看到已经生效的所有IP。)
二、使用虚拟IP(以手动方案为例)
在controller中,选择Scenario-〉Enable IP Spoofer,此项设置允许使用IP欺骗。
按Load Generators按钮,设置虚拟用户生成器,将其某一个IP添加进去,并连通。
第二步,设计场景: 有两种方案来设计场景 1、本地使用虚拟IP设计场景(不带负载生成器使用localhost进行测试)
在设置该类场景时,在场景中添加一个录制好的脚本,该脚本中添加如下代码便可看到虚拟用户在使用哪个IP地址进行消息发送,该场景是通过线程方式进行性能测试。 char * ip;
ip=lr_get_vuser_ip();
if (ip)
{ lr_vuser_status_message("The ip address is %s",ip); }
else
lr_vuser_status_message("IP spoofing disabled");
如果出现语法错误,将变量申明char *ip放在脚本页面端(在controller中执行该脚本时,查看虚拟用户运行状态,便可看到当前虚拟用户使用的哪个IP地址发送消息)
2、负载生成器使用虚拟IP设计场景
在设置该类场景时,需要添加负载生成器,建立负载生成器时输入创建的虚拟IP,每个负载生成器为一个虚拟用户组,该场景是通过进程方式进行性能测试
如何添加负载生成器创建场景在这里就不多描述了.
但需要注意,选中Tools下的Expert mode,启动专家模式.
再点击Tools下的options。
在Genearl选项卡中设置已线程方式或进程方式进行性能测试,这个选项一定要与当前场景的模式相匹配,也就是说使用localhost测试时需要选中线程方式,使用负载生成器测试时需要选中进程方式.运行方案。
问题:
所设定的ip已经启动 ,如果在应用中若出现错误:
Action.c(30): 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'.
解决方法:
1、根据错误提示,在run-time setting中的Miscellaneous项中设置“run vuser as a process”;
2、在安装目录的dat文件夹中查找mdrv.dat,找到[lr_socks]段,在最后添加“ExtCmdLineConc=-UsingWinInet Yes”一句; 3、在选择了expert mode后,选择option->general,选中“ip address allocation per process”;
3、如果仍然报错,在菜单栏中点击Diagnostics->configuration项,将web page diagnostics项disable掉(该路径是在loadrunner11中的位置,若是loadrunner8.0,则在Diagnostics--->Distribution,disable Web Page Diagnostics选项)
三、使用虚拟IP测试完成后
打开IP Wizard,点击Remove,释放所有虚拟IP。
四、LoadRunner IP欺骗功能的误区
常见的误区有以下2点:
1、和Generator搞混。以为添加多个IP后,需要添加多个IP对应的Generator才可以使用。(同一个Generator只需要以其某一个IP添加到Generator列表中即可以使用其它的IP。)
2、在上一个错误基础上,对于同一个脚本,创建多个Vuser执行组,然后以不同IP选择同一个物理Generator来执行。(实际上,在场景中除非需要在这个Generator上运行多个不同脚本,否则没有必要多次以不同IP选择。)
其实只要记住两个要素即可使用这个功能:
1、用IP wizard 添加多个IP;
2、在Controller中通过Enable IP Spoofer。
而在使用IP欺骗功能上应该注意三点:
1、虚拟IP是同一个Generator上的多个IP,这种分配过程由Controller自动来进行;
2、对于同一个Generator,你模拟的用户数量多于IP数量时,将会发生IP重复的现象,否则将随机分配不同的IP。
3、对于同一个Generator,以其某一个IP添加到Generator中即可,不需要用不同的IP添加多次。