LoadRunner负载均衡与IP欺骗

这次出差的性能测试任务又遇到了F5的环境,其中两台web应用服务器通过IP策略实现负载均衡,即由一个统一的F5入口接收所有用户请求,根据用户IP不同实现均衡分发。

显然我的压测机只有一台,也就是一个IP地址。那么这些压力将集中发至其中一台web服务器,无法模拟真实的性能效果。

LoadRunner的IP欺骗功能可以解决这个矛盾。

下面是具体的配置使用过程

一、IP wizard

1、首先要给压测机配置一个固定IP

通过网络配置本地的地址为固定IP,这个应该都会吧?

2、使用LoadRunner自带的 IP wizard 工具,生成IP

(如果遇到傻逼提示可以试试管理员运行)

第一步:打开:开始->程序->HPLoadrunner->tools->Ip wizard,如图所示

LoadRunner负载均衡与IP欺骗 1

“增加新IP”选择第一项,“使用保存的文件增加IP”选择第二项,“释放已经设置的IP”选择第三项。

第二步:这里直接点“下一步”,出现如图所示的界面:

LoadRunner负载均衡与IP欺骗 2

这里输入服务器的IP 地址,IP 向导将检查服务器的路由表是否需要更新,这里也可以不输。

第三步:出现如图所示的界面:

LoadRunner负载均衡与IP欺骗 3

在这里可以使用Remove 按钮删除选定的虚拟IP,点Add 按钮添加IP,如图所示:

LoadRunner负载均衡与IP欺骗 4

注意:C类网址最多255个。

3、cmd中ipconfig看下,已经生成的IP

LoadRunner负载均衡与IP欺骗 5

二、一个IP欺骗测试脚本

1、在事务前增加ip字符变量,通过 lr_get_vser_ip() 函数获取当前用户IP并输出。

LoadRunner负载均衡与IP欺骗 6

三、Controller与Runtime setting设置

1、首先当然要启用IP欺骗功能

LoadRunner负载均衡与IP欺骗 7

2、在Runtime setting中设置输出所有扩展日志,并设置按进程运行(run Vuser as a process

3、在controller->tools中启用 Export Mode,设置按线程分配IP

LoadRunner负载均衡与IP欺骗 8

LoadRunner负载均衡与IP欺骗 9

四、mdrv.dat配置调整

场景运行也许会遇到以下报错(-56992):

LoadRunner负载均衡与IP欺骗 10

LoadRunner负载均衡与IP欺骗 11

1、根据报错提示,找到\HP\LoadRunner\dat目录下的mdrv.dat 配置文件,查找[lr_socks],加一句ExtCmdLineConc=-UsingWinInet Yes

LoadRunner负载均衡与IP欺骗 12

2、事实上大多时候改了上面那个配置也是没用的,依然会报错,鉴于没有失败事务,我们直接把这个错误通知关掉。

LoadRunner负载均衡与IP欺骗 13

重新运行,不再提示报错

LoadRunner负载均衡与IP欺骗 14

五、查看实现效果

场景运行后查询虚拟用户日志,每个用户被分配了不同的IP地址。

LoadRunner负载均衡与IP欺骗 15

LoadRunner负载均衡与IP欺骗 16

【结语】

-最后实际场景运行脚本建议注释掉输出IP这段,或者转移至init中;
-JMeter也有IP伪造功能,下次给大家表演;
-如果现场没有验证负载均衡功能的需求,建议直接把请求url中的IP做成参数化,随机访问……

源自公众号 ERGOisTESTING



留言