[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,此时会打开如下窗口:

clip_image001

三个单选按钮:选择第一个,新增ip;选择第二个从保存好的文件中获得ip;选择第三个表示释放所有添加的ip(我选择了第一个)

  2、next到如下窗口:

clip_image002

此时需要输入,你将要测试的web服务器的ip,必须正确输入,否则即便是新生成的ip(负载机器)联接通过,run时依然出错。

   3、填写好后,next到如下窗口:

clip_image003

该窗口中可以添加或者删除ip

  4、Add到以下窗口:

clip_image004

关键是在from ip栏输入要产生虚拟ip的起始值、需要的虚拟ip数量

  5、点击OK

clip_image005

成功添加了所需要的ip,如果有ip已经被占用,会有提示

   6、finish:

clip_image006

上面会显示本次增加的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状态

如果连接成功,任务栏上会有如图显示:

clip_image007

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.  原来是函数不支持,嘿嘿!

posted @ 2016-04-18 11:53  ouhy  阅读(433)  评论(0编辑  收藏  举报