CallmeJack 发表于 2018-2-8 15:23:07

脚本中设置检查点& IP欺骗

一、设置检查点
转载来源:http://www.cnblogs.com/fnng/archive/2013/03/10/2953257.html
及资料《loadrunner中添加检查点图文详解.doc》

二、IP欺骗
http://www.cnblogs.com/fnng/archive/2013/03/02/2940284.html
http://blog.csdn.net/zzzmmmkkk/article/details/5248655这篇博文真不错
一. 什么是IP欺骗?
做什么事首先要问个为什么,如果知道为什么了,即使不知道如何做,简单,google it,答案总会找
得到,google.cn不行,google.com总行,来自全球的搜索结果,总会有帮助。

IP spoof即IP 电子欺骗,我们可以说是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,
从而达到某种目的技术。 IP是网络层的一个非面向连接的协议, IP数据包的主要内容由源IP地址,
目地IP地址,所传数据构成,IP的任务就是根据每个数据报文的目的地址,路由完成报文从源地址到
目的地址的传送。至于报文在传送过程中是否丢失或出现差错,IP不会考虑,那是TCP的事。对IP来
讲,源设备与目的设备没有什么关系,它们是相互独立的。IP包只是根据数据报文中的目的地址发送,
因此借助高层协议的应用程序来伪造IP地址是比较容易实现的。

二. 为什么要设置IP欺骗?
对于某些服务器,是根据IP来分配资源,当某个IP地址访问频繁或者访问量过大时,服务器会拒绝访
问,或者让你输入验证码,当然也有可能是来避免搜索引擎robot的任意爬取。

网上还有些言论是说使用更多的IP来模拟较真实的用户使用环境,来测试负载均衡技术的处理能力,
但是我始终想不明白这跟那个有什么关系,如果服务器可以接受同一IP大量访问,负载均衡不照样
起作用,照样可以被测试到吗?(私人观点,意见可以保留)
三. 设置前的准备工作
1. 要有局域网的环境,因为只能设置局域网内的网段;
2. 本地的IP设置不能为“自动获取”,必须指定一个静态IP。

四. 如何设置

第一步:
运行Mercury LoadRunner- Tools-IP Wizard

第二步:
选择create new setting,点击“下一步”
此时出现的页面是让输入服务器的IP地址,Loadrunner通过该地址更新路由表。
客户端计算机上添加新的IP地址后,服务器需要将该地址添加到路由表,以便能够识别返回到客户
端的路由。如果服务器和客户端具有相同的子网掩码、IP 类和网络,则不需要修改服务器的路由表。
如果客户端和服务器计算机之间有一个路由器,则服务器需要识别经过该路由器的路径。确保将以
下路由添加到服务器路由表:从 Web 服务器到路由器的路由,以及从路由器到负载生成器计算机上
的所有 IP 地址的路由。

第三步:
在输入web服务器地址的页面中输入地址后,直接点击“下一步”
进入IP添加页面,点击“add”进行添加

第四步:
在from ip 输入框中输入起始ip,在Number to输入框中输入ip地址的位数,输入正确的子网掩码,
选中“verify that new ip addresses are not already used”,点击“ok”,此时IP Wizard会自动按照设
置生成IP地址,并且将已经占用的IP列出。

第五步:

确认可用IP地址列表内容后,点击“ok”,此时IP Wizard提示需要重新启动计算机,点击“save as”
保存IP列表,点击“ok”,重新启动计算机。
注:当保存IP地址列表后,下次启用IP欺骗时直接选择load previous setting from.....

第六步:
启用IP欺骗
选中Tools下的Expert mode,启动专家模式Expert mode,再点击Tools下的options,在Genearl选
项卡中设置以线程方式或进程方式进行性能测试,这个选项一定要与当前场景的模式相匹配,也就
是说使用本地虚拟IP测试时需要选中线程方式,使用负载生成器使用虚拟IP测试时需要选中进程方
式。
在controller中,选择 Scenario-〉Enable IP Spoofer,此项设置允许使用IP欺骗。

第七步:
验证IP欺骗是否有效

方法一
计算机重新启动后,在运行行中输入:CMD,在DOS命令提示符窗口中输入:IPCONFIG,此时便可
看到虚拟的IP地址均已经被启用;
方法二
在脚本的Action()部分增加如下代码:
char * ip=lr_get_vuser_ip();

       if(ip)

            lr_vuser_status_message("The ip address is %s",ip);

       else

            lr_vuser_status_message("IP spoofing disabled");然后通过控制器设置并运行场景,日志中可以看到IP地址。

第八步:

这一部很重要,如果不做这一步,很多IP地址就被占用了,可能你们网管跟你闹上了呵呵。打开IP
Wizard,选择restore original settings释放所有虚拟IP。

五.误区及答疑

到现在为止,IP spoofer设置就告终了,但是最后有些疑问或者叫误区需要分享一下。

Q/A:

1.自己本地的IP地址不在虚拟IP段内,有影响吗?

答:没有

2.是否需要配置多个load generator来对应不同的虚拟IP呢?

答:不用,这个过程是generator自己完成的。

3.不同的generator是否都需要设置IP spoof呢?

答:Definitely Yes,不然的话不设IP欺骗的那台只会使用一个本地的IP执行。

4.虚拟用户数和虚拟IP数量上有什么关系呢?

答:如果虚拟用户数小于IP数量时,每个用户会得到不同的IP,否则,会有IP重复的现象。

5. 还有别的办法添加虚拟IP吗?

条条大路通罗马,试试这个。

在一台机上虚拟的IP跨网段的处理,可通过在服务器端添加路由来实现。
例:
服务器IP:192.168.0.1
测试机IP:192.168.0.206

测试机上添加的虚拟IP: 192.168.10.1~128

那么在服务器端执行以下命令:
route add 192.168.10.0 mask 255.255.255.0 192.168.0.206


遇到的问题:
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, section: ‘ExtCmdLineConc=-UsingWinInet Yes‘.
    根据提示进行如下处理:
    思路:
    1.修改Run-Time Settings(默认是线程);
    2.看mdrv.dat文件,搜索后在loadrunner安装目录下dat文件中;
       解决方法详细如下:
      1.在run-time setting中的Miscellaneous项中设置“run vuser as a process”;
      2.在安装目录的dat文件夹中查找mdrv.dat,找到段,在最后添加“ExtCmdLineConc=-
UsingWinInet Yes”一句; 然后再选择了expert mode后,选择option->general,选中“ip address
allocation per process”;
      3.运行Controller施压,如果仍然报错,在菜单栏中点击Diagnostics->configuration项,将web
page diagnostics项disable掉。


梦想家 发表于 2018-2-28 17:08:10

:handshake

Miss_love 发表于 2020-12-30 08:43:09

支持分享
页: [1]
查看完整版本: 脚本中设置检查点& IP欺骗