以前有小伙伴问到jmeter有没有和loadrunner同样的ip欺骗功能,这篇文章介绍一下什么是ip欺骗,他有什么用,我们用jmeter的时候,ip欺骗怎么作。web
ip欺骗是什么?
ip欺骗就是模拟ip。什么意思呢,一个电脑就只有一个ip地址,固然若是有多块网卡的话,会有多个ip地址,通常服务器上有个网卡,我们本身的电脑通常都只有一个ip地址,可是你作压测的时候有的系统为了防止恶意刷请求,服务端会判断每一个请求过来的ip是否是同一个,若是同一个ip地址在一段时间内频繁请求的话,就把这个ip给封了。这样的状况下你作压测的时候就会受到影响了,由于你的电脑就只有一个ip地址,全部的请求发过去都只是一个ip地址,这种状况下就须要用到ip欺骗了,这样请求发过去的ip地址就不是同一个了,就能解决这样的问题了。ip欺骗就是在这种状况下使用的。
ip欺骗真的有用吗?
ip欺骗,叫ip欺骗,欺骗那就是假的。分两种状况,一种状况下ip欺骗有用,另外一种状况下,ip欺骗没用,就只是欺骗本身罢了。
第一种状况,内网压测:
内网压测的话,ip欺骗是有用的,ip欺骗是在局域网里面找一些没有被使用过的ip地址,而后以这些ip地址发请求过去,这样的话,服务端接收到的ip地址,都是你局域网里面的ip,它的确是模拟了其余ip的。
第二种状况,外网压测:
外网压测,外网压测的话,就是把我们的系统部署到外网上了,全部的人均可以访问,那这样的话,ip欺骗模拟的ip仍是局域网里面的那些ip,你公司里面整个网络的出口都是同样的,好比说大家公司是联通的网络,拉了一条网线,那么整个公司的人,发出去的请求都是一个出口,就是这一个网线的出口出去的,就只有一个外网的ip地址了,那么你再怎么ip欺骗都是局域网里面能够随便搞,出口始终是一个,就模拟不了了,这种就是本身欺骗本身咯。
Jmeter ip欺骗怎么作?
Jmeter2.5版本之后才有这个功能,以前的版本是没有的,这篇文章用的jmeter是3.0的版本,其余版本ip地址参数化那里可能在别的位置,找找就行了。
一、先把ip地址设置成手动获取的,自动获取的是不能够的,以下图:
二、ping几个同网段,没有用过的ip地址,加入到ip地址中,以下图:
====分割线
三、把刚才ping的ip地址放到一个参数化文件里面。
四、在jmeter的里面添加一个文件参数化,读取刚才这个参数化文件。
五、在脚本里使用这个参数化变量。
====分割线
====分割线
实验!
刚才上面我们操做的都是在jmeter上操做的,也就是都是客户端发请求的,那我们就来验证一下我刚才说的两种状况,在局域网下面和外网上面ip的欺骗。
先作准备工做,我先作了两个脚本,一个访问局域网里的web服务,一个脚本访问外网的besttest官网,而后发请求,分别看web服务的日志和besttest官网的日志,看看ip都是什么。
一、脚本准备,把ip参数化4个,这样多个ip更能看出效果
二、调用脚本,看服务端日志。
下面是操做的截图。
脚本截图:
而后我们脚本都迭代10次,分别看服务端的日志,看每次访问的ip都是什么。
======分割线
从上面的日志截图能够看出来,局域网访问的时候,的确是能够使用ip欺骗里面的模拟多个ip的,可是用外网的时候就没效果了。
从上面的操做你们也能够看出来ip欺骗的实质,具体场景具体应用,但愿能够帮助到你们~