这次出差的性能测试任务又遇到了F5的环境,其中两台web应用服务器通过IP策略实现负载均衡,即由一个统一的F5入口接收所有用户请求,根据用户IP不同实现均衡分发。
显然我的压测机只有一台,也就是一个IP地址。那么这些压力将集中发至其中一台web服务器,无法模拟真实的性能效果。
LoadRunner的IP欺骗功能可以解决这个矛盾。
下面是具体的配置使用过程
一、IP wizard
1、首先要给压测机配置一个固定IP。
通过网络配置本地的地址为固定IP,这个应该都会吧?
2、使用LoadRunner自带的 IP wizard 工具,生成IP
(如果遇到傻逼提示可以试试管理员运行)
第一步:打开:开始->程序->HPLoadrunner->tools->Ip wizard,如图所示
“增加新IP”选择第一项,“使用保存的文件增加IP”选择第二项,“释放已经设置的IP”选择第三项。
第二步:这里直接点“下一步”,出现如图所示的界面:
这里输入服务器的IP 地址,IP 向导将检查服务器的路由表是否需要更新,这里也可以不输。
第三步:出现如图所示的界面:
在这里可以使用Remove 按钮删除选定的虚拟IP,点Add 按钮添加IP,如图所示:
注意:C类网址最多255个。
3、cmd中ipconfig看下,已经生成的IP
二、一个IP欺骗测试脚本
1、在事务前增加ip字符变量,通过 lr_get_vser_ip() 函数获取当前用户IP并输出。
三、Controller与Runtime setting设置
1、首先当然要启用IP欺骗功能
2、在Runtime setting中设置输出所有扩展日志,并设置按进程运行(run Vuser as a process)
3、在controller->tools中启用 Export Mode,设置按线程分配IP
四、mdrv.dat配置调整
场景运行也许会遇到以下报错(-56992):
1、根据报错提示,找到\HP\LoadRunner\dat目录下的mdrv.dat 配置文件,查找[lr_socks],加一句ExtCmdLineConc=-UsingWinInet Yes
2、事实上大多时候改了上面那个配置也是没用的,依然会报错,鉴于没有失败事务,我们直接把这个错误通知关掉。
重新运行,不再提示报错
五、查看实现效果
场景运行后查询虚拟用户日志,每个用户被分配了不同的IP地址。
【结语】
-最后实际场景运行脚本建议注释掉输出IP这段,或者转移至init中;
-JMeter也有IP伪造功能,下次给大家表演;
-如果现场没有验证负载均衡功能的需求,建议直接把请求url中的IP做成参数化,随机访问……
源自公众号 ERGOisTESTING