转:LR的IP欺骗功能使用及经验总结

上一篇 / 下一篇  2014-01-26 10:57:12 / 个人分类:测试技术

当运行场景时,虚拟用户使用它们所在的 Load Generator 的固定的 IP 地址。同时每个

Load Generator 上运行大量的虚拟用户,这样就造成了大量的用户使用同一 IP 同时访问一个

网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户 IP 来分配资源,

这些网站会限制同一个 IP 的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner

允许运行的虚拟用户使用不同的 IP 访问统一网站,这种技术称为“IP 欺骗” 。

    启用该选项后,场景中运行的虚拟用户将模拟从不同的 IP 地址发送请求。该选项非常

的有用。注意:IP Spoofer 在连接 Load Generators 之前启用。

    要使用 IP 欺骗,各个 Load Generator 机器必须使用固定的 IP,不能使用动态 IP(即

 DHCP)

    使用 IP Spoofer 的步骤如下:

    1. 使用 IP Wizard:在“开始”菜单程序中,找到 LoadRunner——Tools——IP Wizard,

        运行它

注意:运行 IP Wizard 程序的机器必须使用固定的 IP,不能使用动态 IP.

     第一次运行 IP Wizard 需要选择第一项“Create new settings”,如果以前运行过,可

以选择第二项“Load previous settings from file”,选择保存好的文件;第三项用于使用

IP 欺骗进行测试完成后,释放 IP 的过程(因为该机会占用大量的 IP 资源,可能会导

致其他机器没有 IP 可用的尴尬局面,使用该项,可以恢复到原来的状况)      。

     这里选择第一项,“Next”,出现 IP Wizard 的第二个窗口`

    这里输入 Web Server 的 IP 地址(这里输入应用程序所在的服务器的IP地址,IP Wizard将会检查服务器路由表是否需要更新,如果需要更新的话,将会产生相应的脚本帮助你来更新服务器路由表,如果服务器和客户端在同一个网段,这个IP可以不填。),然后 Next,出现向导的第三个窗口。

    从“From IP”文本框中输入要使用 IP 范围的第一个 IP 值,然后在“Numbers to Add”

输入一个数字,表示 IP 范围的值;假如第一个 IP 为 192.168.6.100,范围大小为 100,

那么 IP Wizard 将会使用 192.168.6.N(100<=N<200) ,当然这个范围内已经使用的 IP

地址除外,否则会引起 IP 冲突。 “Submask”采用默认情况即可,取决于使用的那种类

型的网络 IP,一般局域网内采用 Class C 即可。

    然后“OK” ,然后 IP Wizard 开始检查该范围内没有使用的 IP,并把没有使用的 IP

添加到本机的 IP 窗口中。到最后一个窗口,直接点“Finish” ,

使用 IP Wizard 后,最后重新启动机器。

  2. 在 Controller 的场景中,启用 IP Spoofer 即可。启用方法很简单(Scenario-->Enable IP Spoofer)。

在使用过程中要注意的几个方面:

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日志;
弹出的提示框头几行就有显示当前使用的IP;

6、使用IP欺骗过程中,会有出现下述问题:
启用IP欺骗后,运行1个虚拟用户的场景都失败;不启用IP欺骗后,运行场景通过;
原因:查看失败的虚拟用户,使用的IP地址(查看方法可使用第5点中的方法),在服务器端通过ping等命令查看网络是否互通;如果服务器ping不通虚拟IP,说明网络设置有问题,检查网络设置。

转自:http://novasblog.blog.163.com/blog/static/437135142011631105044672/


TAG:

 

评分:0

我来说两句

Open Toolbar