之前有小伙伴問到jmeter有沒有和loadrunner一樣的ip欺騙功能,這篇文章介紹一下什么是ip欺騙,他有什么用,咱們用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欺騙都是局域網里面可以隨便搞,出口始終是一個,就模擬不了了,這種就是自己欺騙自己咯。
Jmeter ip欺騙怎么做?
Jmeter2.5版本以后才有這個功能,之前的版本是沒有的,這篇文章用的jmeter是3.0的版本,其他版本ip地址參數化那里可能在別的位置,找找就好了。
1、先把ip地址設置成手動獲取的,自動獲取的是不可以的,如下圖:

2、ping幾個同網段,沒有用過的ip地址,加入到ip地址中,如下圖:

====分割線

3、把剛才ping的ip地址放到一個參數化文件里面。

4、在jmeter的里面添加一個文件參數化,讀取剛才這個參數化文件。

5、在腳本里使用這個參數化變量。

====分割線

====分割線

實驗!
剛才上面咱們操作的都是在jmeter上操作的,也就是都是客戶端發請求的,那咱們就來驗證一下我剛才說的兩種情況,在局域網下面和外網上面ip的欺騙。
先做准備工作,我先做了兩個腳本,一個訪問局域網里的web服務,一個腳本訪問外網的besttest官網,然后發請求,分別看web服務的日志和besttest官網的日志,看看ip都是什么。
1、腳本准備,把ip參數化4個,這樣多個ip更能看出效果
2、調用腳本,看服務端日志。
下面是操作的截圖。
腳本截圖:


然后咱們腳本都迭代10次,分別看服務端的日志,看每次訪問的ip都是什么。

======分割線

從上面的日志截圖可以看出來,局域網訪問的時候,的確是可以使用ip欺騙里面的模擬多個ip的,但是用外網的時候就沒效果了。
從上面的操作大家也可以看出來ip欺騙的實質,具體場景具體應用,希望可以幫助到大家~