LoadRunner 技巧之 IP欺骗 (推荐)

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

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

 

IP欺骗的设置方式

 

打开HP LoadRunner ---->Tools ---->IP Wizard服务器

什么状况?!咱们须要为本身的电脑配置固定的IP ,配置固定IP的方式,你懂的!网络

 

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

第一步:负载均衡

create new setting  建立新的设置性能

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

Load previous settings fro  读取IP列表文件网站

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

Restore original setting  释放已经设置的IP 

  释放已经添加的IP 地址。

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

 

第二步:

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

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

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

这里能够不作任何添加,点击“下一步”。

 

第三步:

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

第四步:

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

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

from ip 输入框中输入起始ip

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

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

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

选中“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 。

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

 

第六步:

打开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选项

勾选全部log,否则等一下你会纳闷,为何只能看到第一个虚拟用户的log。

切换到Miscellaneous选项

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

作完这几步能够把脚本保存,导入到Controller运行。

 

 

 

 验证IP欺骗

 

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

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

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

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

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

 

第四步

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

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

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

菜单栏:Results ---> Results Settings...

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'.”

解决方法
一、根据错误提示,在run-time setting中的Miscellaneous项中设置“run vuser as a process”;(前面已将教怎么设置) 

二、...\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
........
复制代码

 

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

 

 

IP欺骗的理解误区

 

理解误区:

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

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

 

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

     一、 用IP wizard 添加多个IP;

     二、在Controller中经过Enable IP Spoofing。

 

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

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

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

   三、对于同一个Generator,以其某一个IP添加到Generator中便可,不须要用不一样的IP添加屡次。

相关文章
相关标签/搜索