[LoadRunner]LR中IP欺骗的使用
设置IP欺骗的原因:(这部分我还是不能很好的理解)
1、当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达压力测试的效果
2、某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和并测试服务器均衡处理的能力。
多个IP地址的设置:
可直接在本地连接中增加IP,或者通过LR自带的工具“IP wizard”设置,当然也可以使用其它软件设置,唯一需要注意的就是注意设置的IP的有效性,我在此次测试中使用了IP wizard,具体操作如下:
(首先,需要注意的是load Generator机器必须使用固定的IP,不能使用动态IP)
1、开始——程序——lr——tools——IP wizard,此时会打开如下窗口:
三个单选按钮:选择第一个,新增ip;选择第二个从保存好的文件中获得ip;选择第三个表示释放所有添加的ip(我选择了第一个)
2、next到如下窗口:
此时需要输入,你将要测试的web服务器的ip,必须正确输入,否则即便是新生成的ip(负载机器)联接通过,run时依然出错。
3、填写好后,next到如下窗口:
该窗口中可以添加或者删除ip
4、Add到以下窗口:
关键是在from ip栏输入要产生虚拟ip的起始值、需要的虚拟ip数量
5、点击OK
成功添加了所需要的ip,如果有ip已经被占用,会有提示
6、finish:
上面会显示本次增加的ip,选择save as可以将本次增加的ip保存成文件,下次直接使用就可以,OK即可
7、重器计算机才可生效。重启后可以用ping和ipconfig来检查新添加的ip是否成功
在controller中的应用:
1、在conreoller中,Scenario——选Enable ip spoofer(允许使用ip欺骗)
2、conreoller中,tools——选expert mode
3、tools——options——General中关于线程还是进程的设置必须和run-time settings里面的一致,否则IP欺骗失效
4、点Generators——Add所有新添加的IP——每个都去connect到Ready状态
如果连接成功,任务栏上会有如图显示:
5、添加脚本,Vusers数量,设置场景,run
注:1、联接新添加IP之前,必须开启lr Agent Process,否则失败
2
loadrunner ip 欺骗
介绍设置虚拟IP的经验总结:
1、本地的IP不能设置为“自动获取”,必须指定一个静态IP;
原因:如果设置为“自动获取”,在运行IP Wizard时会弹出错误提示;
提示信息为:IP向导不支持启用DHCP的网卡。您的卡启用了DHCP或者配置了无效设置。请与系统管理员联系。
2、添加IP欺骗使用的IP后,会有提示框提示保存IP列表,确定,取消等按钮;建议保存IP列表后再确定完成;
原因:保存IP列表后,下次使用时,可以直接导入IP列表;也可以直接修改保存的IP列表文件,再导入;
3、添加IP欺骗,和释放IP,都要重启机器后才会生效;
原因:重启后,网络配置才会生效;
4、在controller中使用ip欺骗的注意事项;
(1)勾选“场景”->“启用IP欺骗器”;
(2)勾选“工具”->“专家模式”;
(3)“场景”->“选项”->“常规”->“多个IP地址模式”;
这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式--很重要
5、设置IP欺骗后,验证其是否生效;
(1) 有两种方法查看:
可用如下代码段来查看:
char *ip = lr_get_vuser_ip();
if (ip)
lr_output_message("The IP address is %s", ip);
else
lr_output_message("IP spoofing disabled");
注意:如果把上面这一段加入代码中间,第一句要修改下:
char *ip;(这句放在函数起始部位,对变量ip进行声明)
ip=lr_get_vuser_ip();(这个和后面的if-else语句一起放在要输出的地方)
另:这个在generator中是不生效的,所以在回放代码时看到的都是"IP spoofing disabled",在contorller中设置了启用IP欺骗,日志中就可以看到
(2) controller的运行页,运行完场景后,在通过、失败的虚拟用户处,右键可显示VUser日志(如果在run_time setting 中设置log 为 "仅在有错误产生时发送信息",是看不到想要的日志信息的。将选项勾选第二个“任何时候都记录日志”,就OK了);
弹出的提示框头几行就有显示当前使用的IP;
ps. 刚看了lr_output_message()函数的用法,知道为什么要选“Always send messages”,抄录下来:
To send a message to the output file, you must enable logging in the run-time settings, and select Always send messages. If you select Send messages only when an error occurs, there is no output from this function. 原来是函数不支持,嘿嘿!
---------------------------------------------------------------
作者:whylaughing
博客地址:http://www.cnblogs.com/whylaughing/
注意事项:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。