性能测试之——IP Spoofer技术
默认情况下,同一个Load Generator上的所有虚拟用户都是用该Generator的IP地址来访问服务器,即在同一个负载生成器计算机上的Vuser具有相同的IP地址,当有大量虚拟用户并发运行时,就会出现多个用户使用同一个IP地址对网站进行加压的的情况。与此同时,应用程序服务器经常缓存来自同一台计算机上的客户端信息,而路由器则缓存源信息和目标信息,以提高处理能力。经过服务器和路由器进行优化处理后,Load Generator产生的压力可能无法反映真实的情况,尤其遇到服务器对同一IP访问进行限制的情况,将会导致每个Load Generator仅能创建一个虚拟用户,除非修改服务器配置。
LaodRunner可以通过IP Spoofer技术来解决上述问题,以保证每个虚拟用户使用自己的IP地址来访问服务器,IP Spoofer也称为“IP 欺骗”。
其实,在大多数性能测试过程中,使用多个IP地址和使用同一个IP对网站进行访问并不影响实际被测应用的性能表现,但在某些情况下,使用多个IP地址和使用一个IP地址对应用会造成不同的运行情况,此时就需要更加真实的模拟,在同一台LaodGenerator Machine上,让每个虚拟用户使用不同的IP地址。
一、必须使用IP Spoofer的情况:
l 网站采用了“根据IP确定负载分布”的负载均衡方式。
l 出于安全目的,网站限制同一个IP地址只能在网站上产生有限个任务。(如投票)
二、使用IP Spoofer的注意事项:
l Load Generator Machine必须使用静态IP地址,而不是使用通过DHCP自动分配的IP地址。
否则,在配置IP Spoofer时会提示如下信息:
l 为了使LoadRunner能使用这些IP地址,还需要在Controller中对场景进行设置,须选中菜单【Scenario】—>【EnableIP Spoofer】选项,最好在连接到负载生成器之前选择该项。
l 打开菜单【Tools】—>【Expert Mode】,进入专家模式,对多个IP地址进行全局设置,进入【Tools】—>【Options】中的“General”选项卡,根据虚拟用户的情况来配置IP地址的加载方式。如果虚拟用户按线程启动,则选择为每个线程分配一个IP;如果虚拟用户按进程来运行,则选择为每个进程(含50个线程)分配一个IP。
三、IP Spoofer配置步骤
1. 单击【开始】—>【程序】—>【Mercury LoadRunner】—>【Tools】—>【IP Wizard】,打开设置向导,如下图所示:
从图上可以看到,有三个选项:
l 创建新配置项
l 从以前的配置文件加载设置
l 恢复原始设置
2. 选择“Create new setting”,点“下一步”,如下图所示:需要输入服务器的IP地址,可以检查服务器的路由表,以确定向负载生成器添加新的IP地址后路由表
是否需要更新,输入服务器的IP地址后,点“下一步”。
3. 点“Add”按钮,添加IP地址。可以批量添加C类、B类、A类或自行指定IP地址。
如选择C类地址,起始IP地址为192.168.0.11,Number to add设置为10,并选择“Verify the new IP addressesare not already in use”,如下图:
点“OK”,验证添加的IP地址,并显示在列表中:
点“完成”,如下图所示:
可以点“Save as”将该设置保存下来,以后需要配置时,直接导入该文件即可。
选择“Reboot now to update routing table”,表示马上重启并更新路由表。
点“OK”,重启电脑后,在命令提示符输入ipconfig/all 回车,可以看到IP列表,表示欺骗已配置成功,如下图所示。