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,如果出现以下窗口:
则需要为自己的电脑配置固定的IP,如图:
配置成功后就正式进入添加IP:
第 二 步: 在IP向导中选中第一个create new setting,创建新的设置,点击下一步
create new setting 创建新的设置
当第一次使用IP欺骗或已经释放了添加的IP时,就需要选择这一项创建新有设置。
Load previous settings fro 读取IP列表文件
从以前设置的IP地址列表中读取IP地址
Restore original setting 释放已经设置的IP
释放已经添加的IP 地址。
第 三 步: 输入服务器的IP地址,Loadrunner通过该地址更新路由表。
客户端计算机上添加新的IP地址后,服务器需要将该地址添加到路由表,以便能够识别返回到客户端的路由。如果服务器和客户端具有相同的子网掩码、IP 类和网络,则不需要修改服务器的路由表。
如果客户端和服务器计算机之间有一个路由器,则服务器需要识别经过该路由器的路径。确保将以下路由添加到服务器路由表:从 Web 服务器到路由器的路由,以及从路由器到负载生成器计算机上的所有 IP 地址的路由。
这里可以不做任何添加,点击“下一步”。
第 四 步: 默认显示本机的IP 地址,点击“Add”进入IP添加页面添加更多的IP 。
第 五 步:
IP地址的类别:A\B\C都行
在F rom ip 输入框中输入起始ip地址(同一个网段)
在Number to输入框中输入ip地址的个数,就是伪造的IP地址的个数
Submask根据IP类型输入正确的子网掩码
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”。
此时IP Wizard会自动按照设置生成IP地址,并且将已经占用的IP列出。点击“完成”
第 六 步:
点击“save as”按钮,将设置的IP 保存成一个文件,以后再设置的时候,可以在第一步里,我们可以选择第二个选项(Load previous settings fro),从文件导入IP 。
点击“ok”,IP Wizard开始帮我们成成IP 。
在dos中输入ipconfig命令验证,本地连接有多个IP地址
{场景设置}
第一步: 打开 Controller ,加载测试脚本,
首先在Scenario菜单->选中Enable IP Spoofer,打勾表示允许使用IP欺骗,如图
其次在Tools菜单->选中Export Mode,如图
最后打开Options菜单,切换到General选项卡,选择线程,如图
{要与当前场景的模式相匹配,也就是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方式}
第二步: 打开run-time settings,设置log日志和Miscellaneous杂项,如图
第三步: 在Action脚本中前面加上分支语句查看新加IP地址是否被使用啦,代码如下:
char * ip ;
ip = lr_get_vuser_ip();
if (ip)
lr_output_message("当前虚拟用户使用的IP为: %s", ip);
else
lr_output_message("[enable IP spoofer ]选项没有被启用!");
代码修改后,需要将脚本刷新
第四步: 切换到run试图,运行场景,查看虚拟用户log,日志中有所使用的IP地址。
{注意事项}
使用完iP欺骗后一定要及时初始化还原,如下2点
<1>:将所添加的IP地址清空,或则出现IP冲突:
继续使用Tools -- IP Wizard -- 选择第三项
<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欺骗使用完后,记得还原。