Loadrunner中的IP欺骗的设置以及误区

上一篇 / 下一篇  2010-01-23 17:34:18 / 个人分类:LOADRUNNER

最近在忙着部署web性能测试的环境后,对IP欺骗进行设置,特地做个笔记,给自己的学习历程留下点足迹。

一. 什么是IP欺骗?

做什么事首先要问个为什么,如果知道为什么了,即使不知道如何做,简单,google it,答案总会找得到,google.cn不行,google.com总行,来自全球的搜索结果,总会有帮助。

IP spoof即IP 电子欺骗,我们可以说是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。 IP是网络层的一个非面向连接的协议, IP数据包的主要内容由源IP地址,目地IP地址,所传数据构成,IP的任务就是根据每个数据报文的目的地址,路由完成报文从源地址到目的地址的传送。至于报文在传送过程中是否丢失或出现差错,IP不会考虑,那是TCP的事。对IP来讲,源设备与目的设备没有什么关系,它们是相互独立的。IP包只是根据数据报文中的目的地址发送,因此借助高层协议的应用程序来伪造IP地址是比较容易实现的。 
     

二. 为什么要设置IP欺骗?

对于某些服务器,是根据IP来分配资源,当某个IP地址访问频繁或者访问量过大时,服务器会拒绝访问,或者让你输入验证码,当然也有可能是来避免搜索引擎robot的任意爬取。

 

网上还有些言论是说使用更多的IP来模拟较真实的用户使用环境,来测试负载均衡技术的处理能力,但是我始终想不明白这跟那个有什么关系,如果服务器可以接受同一IP大量访问,负载均衡不照样起作用,照样可以被测试到吗?(私人观点,意见可以保留)


三. 设置前的准备工作

1. 要有局域网的环境,因为只能设置局域网内的网段;

2. 本地的IP设置不能为“自动获取”,必须指定一个静态IP。

四. 如何设置

第一步:
运行Mercury LoadRunner- Tools-IP Wizard

第二步:
选择create new setting,点击“下一步”
此时出现的页面是让输入服务器的IP地址,Loadrunner通过该地址更新路由表。
客户端计算机上添加新的IP地址后,服务器需要将该地址添加到路由表,以便能够识别返回到客户端的路由。如果服务器和客户端具有相同的子网掩码、IP 类和网络,则不需要修改服务器的路由表。如果客户端和服务器计算机之间有一个路由器,则服务器需要识别经过该路由器的路径。确保将以下路由添加到服务器路由表:从 Web 服务器到路由器的路由,以及从路由器到负载生成器计算机上的所有 IP 地址的路由。

第三步:
在输入web服务器地址的页面中输入地址后,直接点击“下一步”
进入IP添加页面,点击“add”进行添加

第四步:
在from ip 输入框中输入起始ip,在Number to输入框中输入ip地址的位数,输入正确的子网掩码,选中“verify that new ip addresses are not already used”,点击“ok”,此时IP Wizard会自动按照设置生成IP地址,并且将已经占用的IP列出。

第五步:

确认可用IP地址列表内容后,点击“ok”,此时IP Wizard提示需要重新启动计算机,点击“save as”保存IP列表,点击“ok”,重新启动计算机。

注:当保存IP地址列表后,下次启用IP欺骗时直接选择load previous setting from.....

第六步:

启用IP欺骗

选中Tools下的Expert mode,启动专家模式Expert mode,再点击Tools下的options,在Genearl选项卡中设置以线程方式或进程方式进行性能测试,这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式。


在controller中,选择 Scenario-〉Enable IP Spoofer,此项设置允许使用IP欺骗。

第七步:

验证IP欺骗是否有效

方法一
计算机重新启动后,在运行行中输入:CMD,在DOS命令提示符窗口中输入:IPCONFIG,此时便可看到虚拟的IP地址均已经被启用;

方法二

在脚本的Action()部分增加如下代码:

       char * 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");

然后通过控制器设置并运行场景,日志中可以看到IP地址。

第八步:

这一部很重要,如果不做这一步,很多IP地址就被占用了,可能你们网管跟你闹上了呵呵。打开IP Wizard,选择restore original settings释放所有虚拟IP。

五.误区及答疑

到现在为止,IP spoofer设置就告终了,但是最后有些疑问或者叫误区需要分享一下。

Q/A:

1.自己本地的IP地址不在虚拟IP段内,有影响吗?

  答:没有

2.是否需要配置多个load generator来对应不同的虚拟IP呢?

  答:不用,这个过程是generator自己完成的。

3.不同的generator是否都需要设置IP spoof呢?

  答:Definitely Yes,不然的话不设IP欺骗的那台只会使用一个本地的IP执行。

4.虚拟用户数和虚拟IP数量上有什么关系呢?

  答:如果虚拟用户数大于IP数量时,每个用户会得到不同的IP,否则,会有IP重复的现象。

5. 还有别的办法添加虚拟IP吗?

条条大路通罗马,试试这个。

在一台机上虚拟的IP跨网段的处理,可通过在服务器端添加路由来实现。
例:
服务器IP:192.168.0.1
测试机IP:192.168.0.206

测试机上添加的虚拟IP: 192.168.10.1~128

那么在服务器端执行以下命令:
route add 192.168.10.0 mask 255.255.255.0 192.168.0.206


TAG:

引用 删除 hs_Test   /   2012-08-23 10:16:07
1
引用 删除 lsharp   /   2010-12-19 21:21:56
文章写得不错。
"如果服务器可以接受同一IP大量访问,负载均衡不照样起作用,照样可以被测试到吗?"因为有的负载均衡策略是根据请求的IP来区分这个请求走哪个服务器的,如果请求的IP是固定的,那么这些请求都会被负载均衡引向一个固定的服务器。
 

评分:0

我来说两句

Open Toolbar