一、设置IP欺骗的原因:
1、当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达压力测试的效果
2、某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和并测试服务器均衡处理的能力。
多个IP地址的设置:
可直接在本地连接中增加IP,或者通过LR自带的工具“IP wizard”设置,当然也可以使用其它软件设置,唯一需要注意的就是注意设置的IP的有效性(IP本身需要同服务器ping通,随意设置的很可能不生效)。需要注意的是load Generator机器必须使用固定的IP,不能使用动态IP。
二、IP欺骗设置方法
- 在配置前首先要确定本地IP是固定的,不能是自动获取的
- 所添加的IP只能是局域网内的网段,即只能添加192段,127段,10段的IP地址
- IP Spoofer 在连接 Load Generators 之前启用
“IP wizard”设置,按页面步骤依次操作就可以了。
需要注意的是:
1、压力机本身的IP必须要加在里边,且这个IP千万不要删除。一旦误删除,远程机器立刻就会断开,连接不上了。
2、工具默认的所有虚拟IP(如192.168.10.xx)与压力机本身的IP(192.168.12.15),使用的是压力机所使用的网关(192.168.12.1)。
3、配置完成后,需要重启机器或网络设置使之生效。用ipconfig命令看一下是否已配置成功。
三、在controller中的应用:
基本操作:
1、在conreoller中,Scenario——选Enable ip spoofer(允许使用ip欺骗)
2、conreoller中,tools——选expert mode
3、tools——options——General中关于线程还是进程的设置必须和run-time settings里面的一致,否则IP欺骗失效
有两种方案来设计场景
a、 本地使用虚拟IP设计场景(不带负载生成器使用localhost进行测试)
在设置该类场景时,在场景中添加一个录制好的脚本,该脚本中添加如下代码便可看到虚拟用户在使用哪个IP地址进行消息发送,该场景是通过线程方式进行性能测试。
char * ip;
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");
在controller中执行该脚本时,查看虚拟用户运行状态,便可看到当前虚拟用户使用的哪个IP地址发送消息
b、 负载生成器使用虚拟IP设计场景
在设置该类场景时,每个负载生成器为一个虚拟用户组,该场景是通过进程方式进行性能测试。
但需要注意,选中Tools下的Expert mode,启动专家模式;
再点击Tools下的options,在Genearl选项卡中设置已线程方式或进程方式进行性能测试,这个选项一定要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式
注:
1、连接新添加IP之前,必须开启lr Agent Process,否则失败
2、如果run时候报网络方面错,可以查看防火墙之类的东西,比如关闭卡巴斯基等,此次测试就是因为卡巴斯基的缘故run全部failed
3、要虚拟很多IP的情况:在一台机上虚拟的IP跨网段的处理,可通过在服务器端添加路由来实现。 ------未实现过。
常用的还是:虚拟IP与压力机本身是同网段的,至于与服务器是不是同一网段要看具体情况,当然三者最好还是同一网段最好。
参考链接
http://blog.csdn.net/lsf901/article/details/11564385
http://jingyan.baidu.com/article/27fa7326f87c9a46f8271fbb.html
http://starpoint.blog.51cto.com/968349/1406996
http://www.51testing.com/html/18/631118-853916.html