返回顶部
扶摇直上九万里,展翅高飞岂可待。

LoadRunner——ip欺骗(九)

{ip欺骗}

【含义】是性能测试的一种技术,也是loadrunner自带的一个非常有用的功能

【作用】在测试机上伪造n个ip地址访问服务器,从而达到较真实的环境

【原理】LR中的IP欺骗技术利用Tcp/ip协议的缺陷来调用不同的IP,最大程度上模拟实际使用中的多IP访问以及来测试服务器均衡处理的能力。

缺点:仅限局域网,最多模拟出254个ip

【场合】

1、当某个IP的访问过于频繁,或者访问量过大,服务器会拒绝访问请求,此时通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果

2、某些服务器配置了负载均衡:一个ip地址的限制访问次数,

所以使用同一个IP地址是不能测出系统的实际性能。
3、有一些网站会限制同一个用户同一个IP的登陆,为了更加真实的模拟实

际情况,LR允许使用虚拟用户使用不同的IP 来访问同一网站。

【使用1】

本地连接-属性-Tcp/Ip协议-IPv4-高级-添加

【使用2】

第一步:打开HP LoadRunner ---->Tools ---->IP Wizard,如果出现以下窗口:

image.png

则需要为自己的电脑配置固定的IP,如图:

image.png

配置成功后就正式进入添加IP:

步: 在IP向导中选中第一个create new setting,创建新的设置,点击下一步

image.png

create new setting  创建新的设置

  当第一次使用IP欺骗或已经释放了添加的IP时,就需要选择这一项创建新有设置。

Load previous settings fro  读取IP列表文件

  从以前设置的IP地址列表中读取IP地址

Restore original setting  释放已经设置的IP

  释放已经添加的IP 地址。

步: 输入服务器的IP地址,Loadrunner通过该地址更新路由表。

image.png

客户端计算机上添加新的IP地址后,服务器需要将该地址添加到路由表,以便能够识别返回到客户端的路由。如果服务器和客户端具有相同的子网掩码、IP 类和网络,则不需要修改服务器的路由表。

  如果客户端和服务器计算机之间有一个路由器,则服务器需要识别经过该路由器的路径。确保将以下路由添加到服务器路由表:从 Web 服务器到路由器的路由,以及从路由器到负载生成器计算机上的所有 IP 地址的路由。

这里可以不做任何添加,点击“下一步”。

步: 默认显示本机的IP 地址,点击“Add”进入IP添加页面添加更多的IP 。

image.png

步:

IP地址的类别:A\B\C都行

F rom ip 输入框中输入起始ip地址(同一个网段)

Number to输入框中输入ip地址的个数,就是伪造的IP地址的个数

Submask根据IP类型输入正确的子网掩码

image.png

Class C Class B Class A 表示,我们要使用是的A类、B类还是C类IP地址。don't use any of these 不要使用任何,它会把默认的IP与子网掩码清空。

(C类最多只能模拟255 个IP,如果你的需要更多,那么就需要使用A 类或B类)

(我上面的配置是从110开始,按顺序生成5个)

选中“verify that new ip addresses are not already used”,点击“OK”。

image.png

此时IP Wizard会自动按照设置生成IP地址,并且将已经占用的IP列出。点击“完成”

步:

点击“save as”按钮,将设置的IP 保存成一个文件,以后再设置的时候,可以在第一步里,我们可以选择第二个选项(Load previous settings fro),从文件导入IP 。

点击“ok”,IP Wizard开始帮我们成成IP 。

image.png

在dos中输入ipconfig命令验证,本地连接有多个IP地址

image.png

{场景设置}

第一步: 打开 Controller ,加载测试脚本,

首先在Scenario菜单->选中Enable IP Spoofer,打勾表示允许使用IP欺骗,如图

其次在Tools菜单->选中Export Mode,如图

最后打开Options菜单,切换到General选项卡,选择线程,如图

{要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式}

image.pngimage.png

image.png

第二步: 打开run-time settings,设置log日志和Miscellaneous杂项,如图

image.png

image.png

第三步: 在Action脚本中前面加上分支语句查看新加IP地址是否被使用啦,代码如下:

char * ip ;

ip = lr_get_vuser_ip();

if (ip)

lr_output_message("当前虚拟用户使用的IP为: %s", ip);

else

lr_output_message("[enable IP spoofer ]选项没有被启用!");

代码修改后,需要将脚本刷新

image.png

image.png

第四步: 切换到run试图,运行场景,查看虚拟用户log,日志中有所使用的IP地址。

image.png

{注意事项}

使用完iP欺骗后一定要及时初始化还原,如下2点

<1>:将所添加的IP地址清空,或则出现IP冲突:

继续使用Tools -- IP Wizard -- 选择第三项

image.png
<2>:将场景Scenario中的IP Spoofer选中取消,

如不取消,后面运行脚本会出现Network is unreachable的错误。

{常见报错处理}

如果运行脚本后有以下错误请求,提示:“Error: Socket descriptor not found.  Hint: the problem might be solved applying the following: (1) Update Run-Time Settings to Run Vuser as a process. (2) Add the following line into mdrv.dat, [lr_socks] section: 'ExtCmdLineConc=-UsingWinInet Yes'.”

解决方法
1、根据错误提示,在run-time setting中的Miscellaneous项中设置“run vuser as a process”

2、找到该路径下文件...\Program Files \HP\LoadRunner\dat**mdrv.dat**

查找[lr_socks] 在后面添加一行代码:“ ExtCmdLineConc=-UsingWinInet Yes ”
3、如果仍然报错,在菜单栏中点击Diagnostics->configuration项,将web page diagnostics项改为:Enable

{总结}

1)Ip设置:

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

(2)添加IP欺骗使用的IP后,记得先保存(save as),再完成,方便后续再次导入使用。

2)场景设置:

(1)勾选“场景”->“启用IP欺骗器”;
(2)勾选“工具”->“专家模式”;
(3)“场景”->“选项”->“常规”->“多个IP地址模式”->”一般选线程”;

(4)run-time setting-》总是发送信息,扩展日历(全选),其他项:选择线程

3)编写一段代码验证IP欺骗是否成功,记得在场景中更新脚本。

4)IP欺骗使用完后,记得还原。

posted @ 2023-03-14 11:39  孙凯玉  阅读(168)  评论(0编辑  收藏  举报