LoadRunner 技巧之 IP欺骗 (推荐)

LoadRunner 技巧之 IP欺骗 (推荐)

 

IP欺骗也是也loadrunner自带的一个非常有用的功能。

需要使用ip欺骗的原因
1、当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率和访问量,以达到压力测试的效果。
2、某些服务器配置了负载均衡,使用同一个IP不能测出系统的实际性能。LR中的IP欺骗通过调用不同的IP,可很大程度上的模拟实际使用中多IP访问和并测试服务器均衡处理的能力。
3、有一些网站会限制同一个用户同一个IP 的登陆。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不 同的IP 访问同一网站。

 

IP欺骗的设置方式

 

打开HP LoadRunner —->Tools —->IP Wizard

LoadRunner 技巧之 IP欺骗 (推荐)

什么情况?!我们需要为自己的电脑配置固定的IP ,配置固定IP的方式,你懂的!

 

下面进入正式的配置过程:

第一步:

LoadRunner 技巧之 IP欺骗 (推荐)

create new setting  创建新的设置

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

Load previous settings fro  读取IP列表文件

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

Restore original setting  释放已经设置的IP 

  释放已经添加的IP 地址。

选择默认选中项:create new setting (创建新的设置) ,点击“下一步”

 

第二步:

LoadRunner 技巧之 IP欺骗 (推荐)

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

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

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

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

 

第三步:

LoadRunner 技巧之 IP欺骗 (推荐)

默认显示本机的IP 地址,当然,我们还需要添加更多的IP 点击“Add”进入IP添加页面

第四步:

LoadRunner 技巧之 IP欺骗 (推荐)

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

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

from ip 输入框中输入起始ip

Number to  输入框中输入ip地址的个数,也就是说我们需要成多少个用于欺骗的IP

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

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

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

LoadRunner 技巧之 IP欺骗 (推荐)

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

第五步:

LoadRunner 技巧之 IP欺骗 (推荐)  

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

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

在命令提示符号输入ipconfig命令验证:

LoadRunner 技巧之 IP欺骗 (推荐)

 

第六步:

打开loadrunner —> Controller ,选择Scenario—>Enable IP Spoofer  ,此项打勾后表示允许使用IP欺骗。

 

 

 

创建测试脚本(IP欺骗)

 

 

经过上面的配置,你真的已经知道如何使用IP欺骗了么?或者你真的理解了IP欺骗?如何证明你已经使用了IP欺骗?

Action()
{
   //验证IP欺骗代码
    char * ip ;
        ip = lr_get_vuser_ip();
    if (ip)
        lr_output_message("当前虚拟用户使用的IP为: %s", ip);
    else
        lr_output_message("[enable IP spoofing ]选项没有被启用!");


     lr_start_transaction("百度首页");    //设置事务开始

    web_url("www.baidu.com", 
        "URL=http://www.baidu.com/", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t3.inf", 
        "Mode=HTML", 
        EXTRARES, 
        "Url=http://s1.bdstatic.com/r/www/img/i-1.0.0.png", ENDITEM, 
        "Url=http://s1.bdstatic.com/r/www/img/bg-1.0.0.gif", ENDITEM, 
        "Url=/favicon.ico", "Referer=", ENDITEM, 
        "Url=http://suggestion.baidu.com/su?wd=&cb=window.bdsug.sugPreRequest&sid=1440_2031_1945_1788&t=1362056239875", ENDITEM, 
        "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056247256", ENDITEM, 
        "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88%20&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056247969", ENDITEM, 
        "Url=http://suggestion.baidu.com/su?wd=%E8%99%AB%E5%B8%88%20%E5%8D%9A%E5%AE%A2%E5%9B%AD&p=3&cb=window.bdsug.sug&sid=1440_2031_1945_1788&t=1362056251016", ENDITEM, 
        LAST);

     lr_end_transaction("百度首页",LR_AUTO);    //设置事务结束

       return 0;
}

VUGen中运行上面脚本,结果一定是:[enable IP spoofing ]选项没有被启用! 

备注:为什么要在脚本里加事物,这也是loadrunner11比较蛋疼的一个问题,当我修改过action循环次数后,再用Controller 跑脚本时,Passed Transactions 为显示为0 。当然,脚本本身没有任何问题,在脚本中添加事物可以预防这个问题的发生。

OK! 别急着保存脚本导入到Controller运行。打开菜单Vuser —>run-time settings 

 

切换到Log选项

LoadRunner 技巧之 IP欺骗 (推荐)

勾选所有log,不然等一下你会纳闷,为什么只能看到第一个虚拟用户的log。

切换到Miscellaneous选项

LoadRunner 技巧之 IP欺骗 (推荐)

这里选择虚拟用户是以进程还是线程的方式运行。下面你可能会遇到的问题是要对这里进行修改的。

做完这几步可以把脚本保存,导入到Controller运行。

 

 

 

 验证IP欺骗

 

第一步:选择Scenario—>Enable IP Spoofer  ,此项打勾后表示允许使用IP欺骗。(这里前面已经说过,这里只是再提醒一下)

第二步:勾选“Tools”—“Export Mode”

第三步:“Tools”—“Options”—“General”

LoadRunner 技巧之 IP欺骗 (推荐)

这里又有一个设置以进程方式或线程方式进行性能测试。这里和run-time settings 里的设置是什么关系?

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

 

第四步

运行脚本,查看虚拟用户log

LoadRunner 技巧之 IP欺骗 (推荐)

在脚本运行页面,点击Vusers…—-> 右键点击虚拟用户,在弹出的菜单中打开“show Vuser log” 可以看到每个用户使用的IP是不同的。

当然,还有另一种查看日志的方式:

菜单栏:Results —> Results Settings…

LoadRunner 技巧之 IP欺骗 (推荐)

C:\Users\Administrator\AppData\Local\Temp  就是你运行脚本的目录,找到log\目录下面,也可以查看日志。

 

 

遇到的错误

  在运行脚本的过程中发现有不少的错误请求,于是,找开查看发现以下错误提示:“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 (x86)\HP\LoadRunner\dat\mdrv.dat  

查找[lr_socks] 在后面添加“ ExtCmdLineConc=-UsingWinInet Yes ”,如下:

..............
[lr_socks]
ExtPriorityType=hook
WINNT_EXT_LIBS=lr_socks.dll
WIN95_EXT_LIBS=lr_socks.dll
LINUX_EXT_LIBS=liblr_socks.so
SOLARIS_EXT_LIBS=liblr_socks.so
HPUX_EXT_LIBS=liblr_socks.sl
AIX_EXT_LIBS=liblr_socks.so
LibCfgFunc=lr_socks_configure
ExtMessageQueue=0
SecurityMode=On
ExtCmdLineConc=-UsingWinInet Yes
........

 

3、如果仍然报错,在菜单栏中点击Diagnostics->configuration项,将web page diagnostics项改为:Enable (这一招只能说眼不见心不烦),我觉得还有更好的解决办法。

 

 

IP欺骗的理解误区

 

理解误区

    1、和Generator搞混。以为添加多个IP后,需要添加多个IP对应的Generator才可以使用。(同一个Generator只需要以其某一个IP添加到Generator列表中即可以使用其它的IP。)

    2、在上一个错误基础上,对于同一个脚本,创建多个Vuser执行组,然后以不同IP选择同一个物理Generator来执行。( 实际上,在场景中除非需要在这个Generator上运行多个不同脚本,否则没有必要多次以不同IP选择。)

 

其实只要记住两个要素即可使用这个功能:

     1、 用IP wizard 添加多个IP

     2、在Controller中通过Enable IP Spoofing

 

而在使用IP欺骗功能上应该注意三点:

   1、虚拟IP是同一个Generator上的多个IP,这种分配过程由Controller自动来进行;

   2、对于同一个Generator,你模拟的用户数量多于IP数量时,将会发生IP重复的现象,否则将随机分配不同的IP

   3、对于同一个Generator,以其某一个IP添加到Generator中即可,不需要用不同的IP添加多次。

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110204.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号