51Testing软件测试论坛

标题: 如何让jmeter拥有loadrunner的ip欺骗的功能呢? [打印本页]

作者: byakuya    时间: 2009-11-17 10:46
标题: 如何让jmeter拥有loadrunner的ip欺骗的功能呢?
如题,loadrunner能做到的jmeter很多都能办到,但ip spoofer这个功能我想破脑袋也不知怎么用jmeter实现,假设可以用工具做到ip欺骗,那我又该如何把它和jmeter联合起来,并且实现线程分配呢
作者: shanxi    时间: 2009-11-17 11:55
LR的ip欺骗是生成脚本 利用系统已有的命令 生成 route
如果你无法找到生成的脚本,那么google你总会吧

还有一个问题是如何把生成的IP跟Jmeter接上
作者: byakuya    时间: 2009-11-17 14:36
事实上我最终要想问的就是如何把生成的IP跟Jmeter接上,最好能像loadrunner那样分进程和线程两种模式,lr只要挑两个钩选一下就得了,可Jmeter我就没辙了,也是我刚接触Jmeter尚不甚解却又撞上不想花钱用lr的客户,╮(╯▽╰)╭
作者: byakuya    时间: 2009-11-17 15:07
我自己估摸着进程模式是没戏了,但线程模式应该还是有点希望才对...
作者: xiaoshancom    时间: 2009-11-17 19:15
Jmeter IP欺骗

已经给出了最关键的步骤,如果你不会做并发请问你们的开发,让他们给你开发工具实现。

[ 本帖最后由 xiaoshancom 于 2009-11-18 11:09 编辑 ]
作者: byakuya    时间: 2009-11-18 09:48
原帖由 xiaoshancom 于 2009-11-17 19:15 发表
Jmeter IP欺骗


楼上的朋友说的方法相当于开了3个jmeter,那怎么保证并发?难道是把他们弄成master和slaves那种形式么?如果可以,希望能详细说明以下操作过程。

[ 本帖最后由 byakuya 于 2009-11-18 10:00 编辑 ]
作者: byakuya    时间: 2009-11-18 12:09
呃,我现在是开发转测试,研究这玩意的也就我一个,我没人能问啊...
并发我会,但jemter测并发不是在线程组配置么?难道还需要其他开发工具才能做到并发?我先说一下我现在能做到什么好了,我用lr的ip wizard完成了ip欺骗的配置,像xiaoshancom所推荐的方法已经能办到多开,但我怎么让这多个jemter并发这一action?有没有什么方法能统合它们?
jemter我就一菜鸟,说得不对的地方还请多多指教
作者: shanxi    时间: 2009-11-18 12:20
你是需要让这多个jmeter同时运行?  如果理解不正确,能否你分解描述一下你的需求?
作者: byakuya    时间: 2009-11-18 12:42
需求是:我录制的是一个用户登录的动作脚本,限制条件是不同ip不同用户,这个在lr里用ip欺骗和参数化就能解决,jmeter下如何实现?
我现有的操作:badboy录下脚本,用lr的ip wizard完成了ip欺骗的配置,启动了多个jemter,并发实现不明
作者: gjay1688    时间: 2009-11-18 13:05
看了xiaoshancom提供的方法,就是拷贝n个脚本,每个脚本设置自己的IP,然后同时运行,但是需要很多的IP呢?一千个IP就拷贝一千个脚本吗?
作者: byakuya    时间: 2009-11-18 14:46
原帖由 shanxi 于 2009-11-18 12:20 发表
你是需要让这多个jmeter同时运行?  如果理解不正确,能否你分解描述一下你的需求?

确实如此,如果不让这多个jmeter同时运行怎么算多ip并发?那我换一种问法,xiaoshancom提供的方法我可否这么理解,假设我在本机虚拟50个ip,其中一个做controller,其他的做Agent?顺便再问一下各位,如何控制每个Agent的启动线程个数?

[ 本帖最后由 byakuya 于 2009-11-18 14:59 编辑 ]
作者: gjay1688    时间: 2009-11-18 15:44
你的虚拟IP然后用一个IP去controll其它IP的方法没试过,你可以试试,试完告诉大家
一般来说都是用一台机器去controll其它agent机器的,线程数都在controller的脚本里面定义好了的,每个agent都会有一样的线程数。不知道你的方法能不能在每个agent里面设置自己的线程数,应该是不可以的吧。
作者: shanxi    时间: 2009-11-18 16:06
你可以写一个进程
控制同时运行N份copy的Jmeter
作者: gjay1688    时间: 2009-11-18 16:14
这个是通过什么来控制的?不是IP?
作者: shanxi    时间: 2009-11-18 16:17
标题: 回复 14# 的帖子
CreateProcess
作者: mentgmery    时间: 2009-11-18 16:39
还是不清楚
作者: gjay1688    时间: 2009-11-18 16:41
不会写
作者: byakuya    时间: 2009-11-18 16:58
试着半截我想起来了,脚本是在controller执行,线程数也是在controller写得,那这样根本算不上多ip....也就是说,只能一个jmeter一个脚本一线程跑,那就是说负载机根本没法设......
即使写一个进程控制同时运行多份Jmeter,那2g内存的机子又能创建多少用户呢?没有负载机根本就测不了大项目
作者: gjay1688    时间: 2009-11-18 17:12
首先没有资源是不行的
如果真要大量的IP欺骗的话,对于不花钱的Jmeter来说不容易啊
作者: byakuya    时间: 2009-11-19 10:07
有没有其他的法子,不用一个jmeter一个ip的?不能在一棵树上吊死啊......哪位精通测试的老大有好方法,泪奔跪求中
作者: shanxi    时间: 2009-11-19 11:22
标题: 回复 20# 的帖子
方法就是 基于Jmeter 创建一个Controler

看你这么难,公司没资源,更没开发的牛人是吧?

要写出来,贵公司能给多少银子呢
如果是在Google MS这样的公司,你这个问题根本不是问题。
作者: byakuya    时间: 2009-11-20 10:29
资源不是没有,起码我一个人手底下配好的机子有5台,还有5个没配的...
用lr的都是外包的活,国内的活客户花不起用lr的钱,用开源的又模拟不出某些场景,我现在做的就是找出一条不花钱的道。如果用配置解决不了我就只好分析源代码了...
牛人不是没有,被抓去弄微博和手机推送了一个,出差接客的一个,疑似甲流废了一个,只我一刚接触测试的菜鸟好可怜的....
作者: byakuya    时间: 2009-11-20 11:44
我先提出一个瞎想,有什么问题还请各位大大指正,
1.用ip欺骗把ip地址配置在负载机,开始测试时挂载socket通信启动所有的jmeter负载机
2.写一个agent接收socket信息,复制多个jmeter,每个jmeter一个虚拟ip,然后打开jmeter回socket到controller
3.controller计数器确定所有的负载都被打开后开始并发
作者: gjay1688    时间: 2009-11-20 15:02

作者: xiaoshancom    时间: 2009-11-20 16:46
免费的jmeter  要达到LR的C/S控制 模式  是需要二次 开发的


你现在 看起来没能力 自己完成  你公司也不给你资源去做
外面的人 也不会把自己做的二次开发的源码免费放送给你
作者: byakuya    时间: 2009-11-20 17:35
多谢各位,我已经在看源代码自力更生了
作者: liu_xp2003    时间: 2009-11-24 20:08
额...
怎么这么热闹.我赶个末班车.
先问一下,是什么应用测试?
第二问为什么非要用IP欺骗?
作者: xiaoshancom    时间: 2009-11-24 20:17
标题: 回复 26# 的帖子
恭喜你用开源软件 正式上路
作者: gjay1688    时间: 2009-11-25 14:15
标题: 回复 27# 的帖子
老大,你终于出来啦
因为application不允许同一个IP不停地访问,所以才要IP欺骗啊。
有什么高招没?
作者: liu_xp2003    时间: 2009-11-25 22:55
呵呵,高招没有,低招到有.
不过有点想不明白为什么非要这么测试.
网络7层交换设备象Citrix NetScaler, F5以及 Cisco ACE 都配过用过,了解一些大概.对于应用来说只是接受网络上的报文通过判断其中的IP部分来区分不同地址.
这个对于测试软件本身功能来说只是在最前端多了一个判断.若可以关闭该功能,就可以对应用本身做性能评估,同时对IP验证部分做单元性能评估.结合两者来做总体评估.
对这种应用有疑问的是,如果若干客户端是在一个子网,对外出口是一个IP地址.这种情况下貌似就玩不转了.
当需要通过VIP做load balance来扩展业务的容量时,也会有不适应性.
作者: gjay1688    时间: 2009-11-26 15:43
如果客户硬要这么测试也没办法,是不是除了二次开发,只有把脚本拷贝n份,改掉每个脚本的地址这个方法了?
作者: liu_xp2003    时间: 2009-11-26 21:19
如果客户不在乎成本的话,就很方便解决.两种解决方案,一种是软件的,比如是LR,另外一种是用硬件变通的,用NetScaler,F5或者Cisco ACE也可以做到.不过配置复杂的很.同时JMeter脚本要跟网络配置匹配好.
第一种方案就不多说了.
第二种方案就是用网络交换设备来模拟N多IP地址.
两种方案都是挺花钱的.就看客户是否愿意掏钱买单了.

还有一种可能的省钱办法,这要看代码中对IP的验证是否允许代理了.假如测试对象是http的话,在http协议数据头里面加入选项"x-forward-for"(如“x-forward-for:192.168.1.123”)这样发送出去的包,就是一个特殊的包,在收包方看来,这个包的意思是,一个代理服务器发过来的数据包,而这个包的真实ip是“192.168.1.123”,其实还是实现的是三次握手,但是只不过是在发包的同时,对收包方提到了一个第三者。
如果代码验证是通过HTTP_CLIENT_IP或者REMOTE_ADDR 的话这个貌似单软件手段就很难做到了.

[ 本帖最后由 liu_xp2003 于 2009-11-26 21:43 编辑 ]
作者: zhiyun181    时间: 2009-12-7 16:00
可以试试“Jmeter分布式测试”,如果有多个受控机,可以使用 "运行---->远程全部启动" 启动全部受控机,"运行 ---->  启动"  启动主控机,来实现并发。
作者: gjay1688    时间: 2009-12-7 16:29
楼上还没搞清楚怎么回事呢。
作者: balcony520    时间: 2010-4-8 14:21
顶起来,期待高人出现!!!!!!!!!!!!
作者: higkoo    时间: 2010-5-29 16:58
标题: 生成IP的方法有:
http://hi.baidu.com/higkoo/blog/ ... 3d76dcac6e751c.html

按上述方法就可以模拟很多IP地址了,问题转移到Jmeter里怎样用这些IP。我还没了解过,欢迎跟进……
作者: shenmin1984    时间: 2011-6-8 14:36
我最近也找了这方面的资料,用HTTP Request HTTPClient这个sampler应该可以模拟IP,这个sampler里面有个Source IP address属性,是可以传递不同的IP地址的,不过网上有人说HTTP Request和HTTP Request HTTPClient还是有很多不同点的,最好用HTTP Request,不知道有没有人对这个了解很深的,我很想请教。
作者: mikyviky    时间: 2011-8-11 15:16
我也遇到这个问题  不知道楼主怎么解决的呢?
作者: 小小菜鸟    时间: 2011-8-11 16:36
本帖最后由 小小菜鸟 于 2011-8-11 16:39 编辑

我现在也遇到了这个问题,期待楼主贴出最后的解决结果。。。




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