51Testing软件测试论坛

标题: 回答关于IP欺骗的问题:[请大家共同参与讨论研究] [打印本页]

作者: mfktafd    时间: 2006-4-7 21:25
标题: 回答关于IP欺骗的问题:[请大家共同参与讨论研究]
前一阵子做测试要用到IP欺骗,因为跑不通,所以就来上网找了相关的资料,但是,按步骤做是不行的!
因为说句不太好听的,有部分存在误导性的,这里就不说了,也看到了很多朋友问了相关很多发问题,
也是我在测试中遇到的,
经过查阅,LR的官方文档,已解决了,为了不让更多的朋友走弯路,特把部分我知道的问题在这里回答给大家
希望给大家有所帮助,少走更多的弯路,因为我为些郁闷了快一个月,呵呵!!sdlkfj


原帖由 lucky520 于 2006-2-22 23:41 发表
设置多个虚拟用户,使用IP欺骗,要在Loda Generators进行所有的IP地址进行连接吗?
如果1000个虚拟用户,在Loda Generators中要添加1000个IP地址吗?然后进行连接,,有快捷方式吗?
原帖由 zhangfh 于 2005-7-7 11:35 发表
有点不明白,该ip欺骗流程中使用ip时,有提到在controller中添加了5个虚拟ip地址,是否就是指有5个虚拟用户参与并发?如果真是这样的化,那么要虚拟成千上万个用户怎么办?如果load generator 用localhost,在ad ...

设置多个IP不要在loda generators中添加的,因只要你是固定IP,添加虚拟IP后.只接启用IP欺骗就可以,
[前提是你的虚拟IP必须与服务器的IP在同一网段的.服务器和客户端具有相同的子网掩码、IP 类和网络如果不一样的话,还有其它步骤的后面再说!]

原帖由 jian0318 于 2005-8-4 18:21 发表
我现在正在学习使用Loadrunner,文章非常有用,非常感谢楼主,同时也希望能有高手能帮忙答疑解惑,谢谢了。
问题:
1、是否一个并发就要建立一个虚拟IP?
2、是否一个虚拟IP就要建立一个连接,那假如虚拟IP非 ...
3、在新建虚拟IP的步骤2时,需要输入服务器IP,是否是确认测试的CPU、内存等性能指标是服务器的呢?

这个我回答第三个,输入的IP就是要测试的IP地址,你输入IP以后,在所有的IP完成前,你会在你的临时目录TEMP里生成两个文件,一个是用于UNIX的SH后缀的,一个是用于WINDOWS的BAT后缀的文件,你手动修改后用于做服务的路由更新,,个人观点:我用LR生成的UNIX的文件我在我们公司的机子{LINUX}上没有运行起来,不过你可以手动更新,这里的问题也是很多朋友遇到运行脚本时超时的原因吧[非同一网段]!因为我不手动更新服务器路由表的话,跟本跑不通LR,


原帖由 惜缘 于 2005-8-15 11:42 发表
设置多个虚拟用户,使用IP欺骗,在Loda Generators进行所有的IP地址进行连接,
如果1000个虚拟用户,在Loda Generators中要添加1000个IP地址吗?然后进行连接,
难道把1000个IP地址一个一个添加在Loda Generators中吗 ...

只要启动IP欺骗就可以,不要手工添加的,

[ 本帖最后由 mfktafd 于 2006-4-12 20:30 编辑 ]
作者: mfktafd    时间: 2006-4-7 21:38
在这里我再讲一下路由的问题,仅是我经验,请大家共同研究,
如果我们增加的同一网段的,就不要说什么了,一定很顺利的跑下去了,,呵呵!sdlkfj

当我们要很多IP时呢!就要用到不同网段的了!所以有时我们多看看LR的文档也是没有坏处的,要仔细的看,一定会有解决问题的关键,
更新路由表
文档上的东东
客户端计算机有了新的 IP 地址以后,服务器需要将该地址添加到路由表,以识别返回到客户端的路由。如果服务器和客户端具有相同的子网掩码、IP 类和网络,则不需要修改服务器的路由表。

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

要更新 Web 服务器路由表,请执行下列操作:

1编辑“IP 向导摘要”屏幕中显示的批处理文件。以下为一个 .bat 文件示例。
route ADD 10.0.0.2 MASK 255.255.255.255 [CLIENT_IP] METRIC 1
route ADD 10.0.0.3 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
route ADD 10.0.0.4 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
route ADD 10.0.0.5 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
route ADD 10.0.0.6 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
route ADD 10.0.0.7 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
route ADD 10.0.0.8 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
route ADD 10.0.0.9 MASK 255.255.255.255  [CLIENT_IP] METRIC 1
2每次出现 [CLIENT_IP],请在括号中输入您的 IP 地址来替换。
3在服务器计算机上执行该批处理文件


不同的网段,例如:服务器的IP为192.168.0.2,我LR的机子是192.168.0.118[固定IP]
我增加的IP是10.0.0.1~~~10.0.0.200
就要更新服务器的路由表了,
LR会为你在TMEP目录里生成一个BAT和SH的文件,[前提是你使用IP欺骗时在服务器的地址里填写IP]
所以这里我要到服务器的机子上执行脚本.
[WINDOWS]
.BAT
route ADD 10.0.0.2 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.3 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.4 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.5 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.6 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.7 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.8 MASK 255.255.255.255 192.168.1.118 METRIC 1
route ADD 10.0.0.9 MASK 255.255.255.255 192.168.1.118 METRIC 1
.....................................................................................
.SH
不好意思,LR生成的SH在LINUX上我不能更新路由
不过大家可以试一下,我手动写的是如下:也可以做为参考:
route add -net 10.0.0.1 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.2 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.3 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.4 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.5 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.6 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.7 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.8 netmask 255.255.255.255 dev eth0
route add -net 10.0.0.9 netmask 255.255.255.255 dev eth0

这样的一个一个增加的的是很烦啊!如果成千上万的要添加那不是风了,呵呵,不过LR公司生成的更新路由器的脚本就是这样的,不过我也改了一下一下增加一个网段的,路由不知道对测试有没有影响,有心的朋友可以试一下,
我把命令写上!:
WINDOWS:
route ADD 10.0.0.0 MASK 255.255.255.0 192.168.1.118 METRIC 1
LINUX:
route add -net 10.0.0.0 netmask 255.255.255.0 dev eth0


在路由器上更新了路由以后,就可以运行W试一下了,只启用IP欺骗,运行X个用户
我用WEB临时服务器做的测试,运行完以后,去WEB临时服务器的程序上查看IP羰,是X个IP,呵呵,不同网段的IP脚本总算过去了
因为我也是刚接触LR,有理解错误的地方,希望在这里也大家共同论坛,我期望与大家共同进步!.

[有一个问题漏了,做完测试后可以把服务器的路由手动删改的
命令如下:可以写进脚本执行的
route delete 10.0.0.1
.....................(windows)
route del -net 10.0.0.1 netmask 255.255.255.255 dev eth0
......................................(linux)]


[ 本帖最后由 mfktafd 于 2006-4-7 22:17 编辑 ]
作者: Zee    时间: 2006-4-9 00:55
顶一下楼主的解释
真希望有很多人把经验写出来
一起分享就会少走很多错路
作者: sunshine_luo    时间: 2006-4-12 12:22
既然是大家讨论,那么我也来说几句,如果有什么不对的,请大家指出来~
1。lz说“前一阵子做测试要用到IP欺骗,因为跑不通,所以就来上网找了相关的资料,但是,按步骤做是不行的!
因为说句不太好听的,有部分存在误导性的”
我按照controller文档中Appendixes中的第5部分“Configuring Multiple IP Address”进行一步一步操作,在windows平台下是可以完成添加IP地址和进行IP地址欺骗的。Lz能否把操作步骤中具体哪些地方不对详细说出来,这样初学者才能更加看明白。

2。 lz说“设置多个IP不要在loda generators中添加的,因只要你是固定IP,添加虚拟IP后.只接启用IP欺骗就可以”
对这一部分,我觉得有些地方可能有些不妥,添加的多个ip是要在load generator的机器上进行的,而不是添加到controller运行的机器上(当然如果load generator和controller运行在同一台机器上,那就另当别论了),因为Vuser 是由load generator产生而不是由controller中产生,这点要明确。要成功的进行ip欺骗,不但要在运行load generator的机器上添加多个虚拟的ip地址,而且同时在运行controller时需要选中“Enable IP Spoofer”

3。QUOTE:
原帖由 惜缘 于 2005-8-15 11:42 发表
设置多个虚拟用户,使用IP欺骗,在Loda Generators进行所有的IP地址进行连接,
如果1000个虚拟用户,在Loda Generators中要添加1000个IP地址吗?然后进行连接,
难道把1000个IP地址一个一个添加在Loda Generators中吗 ...

对这个问题,我觉得这里有个概念没有明确,为什么要使用IP欺骗?其目的是为了更真实的模拟实际的环境,当多个Vuser使用同一个ip地址去访问server的时,那么server和中间可能通过的路由器都会进行优化处理,这样就无法反映实际的真实情况。当明白了这点就可以知道,需要欺骗的ip地址的个数和Vuser的个数是没有关联的。Vuser会循环反复的使用这些虚拟的ip

4。关于当添加的虚拟ip地址和server不在同一个网段时:
每个网卡上允许的欺骗的ip地址的个数是有限制的,所以这个也不会是成千上万没有限制。
因为每次添加的虚拟ip不一定是连续的,或者都是一个网段的,所以我想这样一条一条添加也不是什么麻烦事情,而且ld会自动产生这个.bat的文件(不过我只是在windows平台下测试过,在unix平台下没有试过这这个.sh的文件是否可用)。至于一下子添加一个网段,我没有测试过,也不知道是否可行,不过只是觉得没有必要,呵呵。
作者: mfktafd    时间: 2006-4-12 20:26
原帖由 sunshine_luo 于 2006-4-12 12:22 发表
既然是大家讨论,那么我也来说几句,如果有什么不对的,请大家指出来~
1。lz说“前一阵子做测试要用到IP欺骗,因为跑不通,所以就来上网找了相关的资料,但是,按步骤做是不行的!
因为说句不太好听的,有部分存在误 ...


答1.如果增加的IP不在同一网段,比如说你的固定IP为C类,你增加的IP为A类,[被测试的服务器的IP也是C类]
更新服务器的路由信息,启用IP欺骗,
然后跑脚本,就能实现IP欺骗的效果,不要在负载生成器列表里一个一个把A类的IP都加进去的,我是这样认为的
也是我所说的对大家可能产生误导的地方.
答2.我们的机子所有的东东都一块装起来了,在一台机器上产生,只启用localhost就可以了,具体你说的那种情况我不太明白,sdlkfj,俺也是新手.
答3.说的很有道理,
应用程序服务器使用 IP 地址来标识客户端。应用程序服务器经常缓存来自同一台计算机上的客户端信息。网络路由器则缓存源信息和目标信息,以提高处理能力。如果许多用户使用同一个 IP 地址,服务器和路由器都会进行优化处理。由于同一台负载生成器计算机上的 Vuser 具有相同的 IP 地址,服务器和路由器将进行优化处理,因而无法反映真实的情况。

LoadRunner 的多 IP 地址功能可以使用许多 IP 地址来标识在一台计算机上运行的多个 Vuser。这样,服务器和路由器认为 Vuser 来自不同的计算机,因此测试环境更加真实。

注意: 在 Windows NT SP3 中,每张网卡上可以欺骗的最大 IP 地址数为 35 个,Solaris(2.5.1 版)最多为 255 个,而 Solaris(2.6 或更高版本)最多则为 8192 个。


答4.BAT文件当然好执行了,现在公司测试还是很多用LINUX,大型的WEB站点,我想SH还是要用到的
当然,BAT与SH脚本修改执行当然是好了,研究一下额外的技术好像没有坏处吧!sdlkfjsdlkfj
作者: mfktafd    时间: 2006-4-12 20:47
适用的协议

多 IP 地址功能适用于下列协议:

客户端/服务器:DNS、Windows Sockets
自定义:Java Vuser、Javascript Vuser、VB Vuser、VB Script Vuser
电子商务:FTP、Palm、SOAP、Web (HTTP/HTML) 协议、WinSock\Web Dual 协议
ERP:Oracle NCA、Siebel-Web
邮件服务:Internet Messaging (IMAP)、MS Exchange (MAPI)、POP3、SMTP
流数据:Real
无线:i-Mode、VoiceXML、WAP
该功能可以在 Windows 和 UNIX 平台上实现。

从 Controller 中启用多个 IP 地址

定义了多个 IP 地址后,您可以设置一个选项,通知 Controller 使用该功能。

要从 Controller 中启用多个 IP 地址,请执行下列操作:

1.在“Controller 设计”视图中,选择“方案”>“启用 IP 欺骗”。
注意: 必须在连接到负载生成器之前选择该选项。

2.使用 Controller 专家模式的“常规选项”来指定 Controller 如何实施该功能。
详细信息,请参阅使用专家模式。

其实LR的用户帮助手册写的挺好的,只要去上面查相关的内容都能找得到的.
作者: sunshine_luo    时间: 2006-4-13 12:01
To mfktafd:
呵呵,知道为什么你会有第1个问题了,因为你没有明白我上边说的第2个问题,建议你去看看帮助文档,理清load generator和contraller之间的关系
作者: mfktafd    时间: 2006-4-13 20:47
我说的负载生成器是CONTROLLE开始方案按钮下面的那个生成器按钮打开的页面里的东西..
如:我本机是192.168.1.100,运行CONITROLLE,
另外一点机子192.168.1.101运行Loda Generators[假如101这台机子上用IP欺骗增加400个IP并且打开了LR AGENT PROCESS]
对服务器192.168.1.102进行测试[已更新路由表].

只需要:在192.168.1.100的机上运行CONITROLLE,启用IP欺骗,然后进入设计页面.点击开始方案按钮下面的生成器按钮.会进入一个小框框,上面写着负载生成器.去右边点击添加按钮.弹出:添加新的负载生成器窗口,输入LG的IP192.168.1.101,点确定返回到小框框,
选中刚添加的生成器101,点击右边的联接按钮.使其状态变成就绪就可,[不需要在小框框中把400个IP一个一个都写进去的]
就可以开始测试了,当然也可以启用专家模式在里面选择一下多IP地址模式是多线程还是多进程.,

[ 本帖最后由 mfktafd 于 2006-4-14 12:44 编辑 ]
作者: sunshine_luo    时间: 2006-4-14 14:29
我的意思不是说ip欺骗的过程;而是和controller和generator之间的关系。
controller只是一个管理平台;generator才是真正产生Vuser的进程;
这就是为什么“,[不需要在小框框中把400个IP一个一个都写进去的]”
作者: savage    时间: 2006-4-14 15:34
楼猪的帖子很好啊
不在同一段里IP需要服务器更新路由表这个能解决问题
作者: mfktafd    时间: 2006-4-14 17:27
原帖由 sunshine_luo 于 2006-4-14 14:29 发表
我的意思不是说ip欺骗的过程;而是和controller和generator之间的关系。
controller只是一个管理平台;generator才是真正产生Vuser的进程;
这就是为什么“,[不需要在小框框中把400个IP一个一个都写进去的]”


我明白你的意思
作者: suchboy    时间: 2006-4-14 21:48
本来想好好学习一下咋样做 ip虚拟....  懒的看书啊

发现楼主 和 副楼主  都懂了,我还是没懂......

还是看书去吧...sdlkfj

[ 本帖最后由 suchboy 于 2006-4-14 22:03 编辑 ]
作者: mfktafd    时间: 2006-4-14 23:14
原帖由 suchboy 于 2006-4-14 21:48 发表
本来想好好学习一下咋样做 ip虚拟....  懒的看书啊

发现楼主 和 副楼主  都懂了,我还是没懂......

还是看书去吧...sdlkfj

有什么不懂的与大家交流才是最重要的,

我发表上面的就是怕有理解错的,才这样与交流,可以共同进步啊.
作者: aaronyou    时间: 2006-4-20 20:58
标题: 感谢各位 我是新手 在做IP欺骗的时候 遇到问题。
测试环境:
安装loadrunner的客户端是 WIN2000 ,服务器端 是redhat9 ,需要测试apache
我在 做IP欺骗的时候  总不成功,始终是 默认的第一个IP。

过程请看
1。
作者: aaronyou    时间: 2006-4-20 21:00
标题: 建立
代码
作者: aaronyou    时间: 2006-4-20 21:03
标题: 2录制
过程
作者: aaronyou    时间: 2006-4-20 21:14
标题: 录制后的代码
。。
作者: aaronyou    时间: 2006-4-20 21:17
标题: 使用ip winzard 重新启动机器后
得到的IP地址
作者: aaronyou    时间: 2006-4-20 21:26
标题: 启动控制台
。。
作者: aaronyou    时间: 2006-4-20 21:27
标题: 关键的来了,按照上面说的 直接启动
结论就是 始终是 第一个 IP
作者: aaronyou    时间: 2006-4-20 21:28
标题: 按照上面的直接启动后,在服务器端 apache日志里显示的 是
启动后 服务器 端记录的是
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
作者: aaronyou    时间: 2006-4-20 21:29
标题: 气馁了。看到 书上写 需要用下面的方法
手动add  IP
作者: aaronyou    时间: 2006-4-20 21:30
标题: 但是 但是 服务器端记录的日志 还是
启动后 服务器 端记录的是
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865
192.168.48.1 - - [20/Apr/2006:20:47:55 +0800] "GET /copy.jpg HTTP/1.1" 200 865


郁闷
作者: aaronyou    时间: 2006-4-21 08:53
没人 愿意 帮我看看吗
作者: aaronyou    时间: 2006-4-21 10:34
谢谢关注。19楼 上 我就用红色 标注了 “选择了IP Spoofer”
作者: mfktafd    时间: 2006-4-21 13:38
我用我的机子测试了一下,录脚本,启用IP欺骗,更新服务器路由,并在APACHE上执行tail -f access_log
可以显示两个IP的,,,

192.168.1.118 - - [21/Apr/2006:13:50:45 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574
10.0.0.1 - - [21/Apr/2006:13:50:45 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574

我的IP是118

我加的IP是10.0.0.1

又增加了几个IP,,重新测试如下!:
192.168.1.118 - - [21/Apr/2006:13:57:16 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574
10.0.0.6 - - [21/Apr/2006:13:57:16 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574
10.0.0.5 - - [21/Apr/2006:13:57:16 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574
10.0.0.4 - - [21/Apr/2006:13:57:16 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574
10.0.0.2 - - [21/Apr/2006:13:57:16 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574
10.0.0.3 - - [21/Apr/2006:13:57:16 +0800] "GET /images/login_bj.gif HTTP/1.1" 200 574

[ 本帖最后由 mfktafd 于 2006-4-21 13:58 编辑 ]
作者: mfktafd    时间: 2006-4-21 14:01
原帖由 pitepian 于 2006-4-21 13:48 发表
在图中红圈的设置了吗?

红圈的设置只要把你产生负载的机器的固定IP加上去就OK了,虚拟的IP,不需要在红圈子里手工加的.(我是这样认为的!)
作者: shorelew@    时间: 2006-6-21 13:28
顶一下
作者: xmylll    时间: 2008-10-14 17:05
原帖由 mfktafd 于 2006-4-7 21:38 发表
在这里我再讲一下路由的问题,仅是我经验,请大家共同研究,
如果我们增加的同一网段的,就不要说什么了,一定很顺利的跑下去了,,呵呵!sdlkfj

当我们要很多IP时呢!就要用到不同网段的了!所以有时我们多看看LR的文档也 ...

那样多的东西看的眼睛都花了!不过楼主用心了!
作者: xmylll    时间: 2008-10-14 17:06
原帖由 xmylll 于 2008-10-14 17:05 发表

那样多的东西看的眼睛都花了!不过楼主用心了!

LR。。。。。。
作者: keiker    时间: 2009-7-1 00:50
楼主太强大了

  太多了 
        可不可以精简一点啊, 看的小弟脑壳转圈圈




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2