Jmeter 局域网的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地址了,那么你再怎么ip欺骗都是局域网里面可以随便搞,出口始终是一个,就模拟不了了,这种就是自己欺骗自己咯。
1、设置手动获取IP:注意设置的是Internet 协议版本4(TCP/IPv4)
点击图上的高级:添加需要IP欺骗的IP地址,添加之前,先测试是否是没有占用的IP,ping不通就是没有占用的;如图已添加ip
2、新建文本文档,输入之前添加的IP地址,重命名为test.csv;
3、JMETER中,添加配置元件~CSV数据文件设置,添加test.csv的路径,以及设置表格中IP地址的变量名
4、添加HTTP请求,除了基础的设置,Advanced中也要如下设置,注意Implementation要设置为HttpClient4,然后IP/Hostname,通过变量名${ip}获取表格中的地址;
5、添加BeanShell Sampler,可以查看表格中获取的IP地址的值,(此步也可以省略,帮助调试);注意log.info(),括号里面的内容必须加双引号,否则会显示红色失败;
在BeanShell Sampler中,添加log.info("${ip}"),该值可以在jmeter.log中看到,也可以在察看结果树中看到;
6、察看结果树的结果如下:
本人在操作过程中由于不细心遇到很多坑:
如表格里的IP地址设置的与实际添加 的IP地址不一致,导致报错;
如实际添加的IP地址,是已被占用的IP地址,导致报错;
如test.csv文件,通过excel重命名,读取的时候乱码,必须用txt文件重命名才行;
如您遇到问题可以直接联系我。本人现在对这块很有心得;