【转自】http://www.cnblogs.com/yangxia-test/archive/2012/11/26/2789093.html
使用IP欺骗功能时,需要将系统防火墙,杀毒软件关闭(如果有影响的话)
一、为什么要设置IP欺骗
1、 当某个IP的访问过于频繁,或者访问量过大时,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果。
2、 某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和测试服务器均衡处理的能力。
二、IP欺骗设置方法
l 在配置前首先要确定本地IP是固定的,不能是自动获取的
l 所添加的IP只能是局域网内的网段,即只能添加192段,127段,10段的IP地址
l IP Spoofer 在连接 Load Generators 之前启用
打开开始菜单中的LoadRunner文件夹下的Tools文件夹,点击IP Wizard:
第一次运行IP Wizard需要选择第一项“Create new settings”,如果以前运行过,可以选择第二项,选择保存好的文件;第三项用于使用IP欺骗进行测试完成后,释放IP的。(因为该操作会占用大量的IP资源,可能会导致其他机器没有IP可用的尴尬局面,使用该项,可以恢复到原来的状况)。
这里选择第一项,“下一步”,出现IP Wizard的第二个窗口:
这里输入Web Server的IP地址(这里输入应用程序所在的服务器的IP地址,IP Wizard将会检查服务器路由表是否需要更新,如果需要更新的话,将会产生相应的脚本帮助你来更新服务器路由表,如果服务器和客户端在同一网段,这个IP可以不填)。然后“下一步”,出现向导的第三个窗口:
从“From IP”文本框中输入要使用IP范围的第一个IP值,然后在“Numbers to Add”输入一个数字,表示IP范围的值;“Submask”使用默认情况,取决于使用的那种类型的网络IP,一般局域网内采用Class C即可。
建议此处选择Save as 保存IP。保存IP列表后,下次使用时,可以直接导入IP列表;也可以直接修改保存的IP列表文件,再导入。
设置完成后,重新启动计算机。
重启后,在命令行输入ipconfig查看IP:
三.在场景中使用IP欺骗
1.勾选“Scenario”--“Enable IP spoofer”;
2.勾选“Tools”—“Export Mode”;
3.“Tools”—“Options”—“General”
Multiple IP address mode选择“IP address allocation per process”
这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式。
4.“Diagnositics”—“Configuration”
“Web Page Diagnostics”设置为Disable.
四、验证是否生效
方法一:
在脚本中添加如下代码:
char *ip = lr_get_vuser_ip();
if (ip)
lr_output_message("The IP address is %s", ip);
else
lr_output_message("IP spoofing disabled");
注:这个在generator中是不生效的,所以在回放代码时看到的都是“IP spoofing disabled”.在Controller中设置了启用IP欺骗后,日志中就可以看到。如下图:
方法二:
Controller的运行页,运行场景,在Vusers中,状态列中右键可以查看Vuser日志,弹出的提示框头几行就有显示当前使用的IP.
五. 释放IP
打开开始菜单中的LoadRunner文件夹下的Tools文件夹,点击IP Wizard:
选中第三项:
重启计算机即可。
六、使用中遇到的问题
1. 启用IP欺骗后,运行1个虚拟用户的场景都失败;不启用IP欺骗后,运行场景通过;
原因:查看失败的虚拟用户使用的IP地址,在服务器端通过ping等命令查看网络是否互通;如果服务器ping不通虚拟ip,说明网络设置有问题,检查网络设置。
2. 运行开始菜单下的IP-Wizard,提示以下错误:
原因:如果IP设置为“自动获取”,在运行IP Wizard程序时会弹出错误提示;运行IP Wizard的机器必须使用固定的IP,不能使用动态的IP.
3.添加IP欺骗后使用的IP,会有提示框提示保存IP列表,确定,取消等按钮,建议保存IP列表再确定完成。
原因:保存IP列表后,下次使用时,可以直接导入IP列表;也可以直接修改保存的IP列表文件,再导入。
4.添加IP欺骗和释放IP,都要重启机器后才会生效
原因:重启后,网络配置才会生效。
5.运行场景时,报错“Error... Failed to connect to load generator.Check the output windows for more details”
解决:手工启动agent服务。
6.运行场景报错“Action.c(30):Error: Socket descriptor not found. Hint:the problem might be solved applying the following:(1) Update Run-Time Settings to Run Vusers as a process.(2)Add the following line into mdrv.exe,[lr_socks] section:’ ExtCmdLineConc=-UsingWinInet Yes’”
解决方法:
a.根据错误提示,在Run-time Settings中的“Miscellaneous”项中设置“run vuser as a process”;在安装目录中的dat文件夹中查找mdrv.dat,找到[lr_socks]段,在最后添加“ExtCmdLineConc=-UsingWinInet Yes”一句。
b.在选择了expert mode后,选择option-general,选中“ip address allocation per process”
c.如果仍然报错,在菜单栏中点击Diagnostics—configuration项,将web page diagnositics项的disable去掉(该路径是在lr11中的位置,若是lr8.0,则在Diagnositics—Distribution,disable Web page Disagnositics选 项).