Jmeter(四十三) – 從入門到精通高級篇 – Jmeter之IP偽裝和欺騙(詳解教程)
1.簡介
我們從小接受的教育就是不要撒謊,要做一個誠實的孩子,但是在現實生活中有時候說一個善意的謊言也不是可以的。這裡由於伺服器各種安全機制的限制和校驗,因此我們不得不欺騙一下伺服器,今天宏哥就給大家分享Jmeter之IP欺騙。
2.什麼是IP欺騙
宏哥這裡所說的是在Jmeter使用時候IP欺騙的定義。更專業的定義和宏哥說的是不一樣的。ip欺騙就是模擬ip。什麼意思呢,一個電腦就只有一個ip地址,當然如果有多塊網卡的話,會有多個ip地址,一般伺服器上有個網卡,咱們自己的電腦一般都只有一個ip地址,但是你做壓測的時候有的系統為了防止惡意刷請求,服務端會判斷每個請求過來的ip是不是同一個,如果同一個ip地址在一段時間內頻繁請求的話,就把這個ip給封了。這樣的情況下你做壓測的時候就會受到影響了,因為你的電腦就只有一個ip地址,所有的請求發過去都只是一個ip地址,這種情況下就需要用到ip欺騙了,這樣請求發過去的ip地址就不是同一個了,就能解決這樣的問題了。ip欺騙就是在這種情況下使用的。
3.ip欺騙真的有用嗎?
ip欺騙,叫ip欺騙,欺騙那就是假的。分兩種情況,一種情況下ip欺騙有用,另一種情況下,ip欺騙沒用,就只是欺騙自己罷了。
第一種情況,內網壓測:
內網壓測的話,ip欺騙是有用的,ip欺騙是在區域網裡面找一些沒有被使用過的ip地址,然後以這些ip地址發請求過去,這樣的話,服務端接收到的ip地址,都是你區域網裡面的ip,它的確是模擬了其他ip的。
第二種情況,外網壓測:
外網壓測,外網壓測的話,就是把咱們的系統部署到外網上了,所有的人都可以訪問,那這樣的話,ip欺騙模擬的ip還是區域網裡面的那些ip,你公司裡面整個網路的出口都是一樣的,比如說你們公司是聯通的網路,拉了一條網線,那麼整個公司的人,發出去的請求都是一個出口,就是這一個網線的出口出去的,就只有一個外網的ip地址了,那麼你再怎麼ip欺騙都是區域網裡面可以隨便搞,出口始終是一個,就模擬不了了,這種就是自己欺騙自己咯。
4.為什麼要偽裝和欺騙
宏哥簡單的列舉幾點原因:
(1)由於現在絕大多數的伺服器出於安全考慮會對同一IP地址做過濾,例如:百度同一IP短時間內發出大量的請求,這個IP就會被封禁一段時間。所以如果想要達到正常的壓測效果,我們需要在發請求時偽造出不同的IP地址。
(2)我們在做壓力測試時,有這樣的場景和需求,希望模擬的批量用戶來自不同的IP地址。
首先看一下宏哥的環境。
5.宏哥環境
Jmeter版本:5.1.1,如下圖所示:
系統:Windows 10版本 64位系統(32位的同學自己想辦法哦),如下圖所示:
然後,跟隨宏哥看一下大致步驟。
6.大致步驟
主要步驟分為以下3步:
第一步:在負載機上綁定IP地址。
第二步:對綁定的IP地址保存到txt文件中。
第三步:在jmeter測試計劃中添加配置元件 並配置IP參數。
第四步:在要欺騙的http請求中,修改Implementation為httpclient模式,修改Source Address,指定請求要用到的本地地址(參數化)。
第五步:添加察看結果樹。
最後按照大致步驟,實戰一下。
7.實戰
第一步:在負載機上綁定IP地址:
a、開始菜單 -> 設置 -> 網路和Internet -> 更改適配器選項 -> 乙太網
b、右鍵乙太網(找到你正在使用的連接有線或無線) -> 屬性,選擇Internet 協議版本4(雙擊打開窗口),如果是採用自動獲取IP,得通過手工設置IP
c、在屬性窗口中選擇高級按鈕,選擇IP設置,點擊添加,輸入新的IP地址(須要注意在區域網內不要有IP衝突,可以事先ping一下找沒有使用的IP),但子網掩碼必須一致。
說明:負載機需要是固定的IP地址
首先打開負載機上的網路配置,將IP地址更改為固定IP ,如下圖所示:
然後點擊高級項手動添加你要偽造的IP地址 ,如下圖所示:
此處添加的地址需要注意是否已被佔用,可以先ping下你要偽造的地址,如果提示無法訪問目標主機則意味著該地址未被佔用,可正常添加。
第二步:IP綁定後,你需要將剛才的IP地址記錄在一個txt文檔中,以便之後的請求時參數化調用你偽造你的IP.。如下圖所示:
第三步:負載機上的IP綁定完成後,需要在jmeter中設置變數來調用 ,在jmeter測試計劃中添加配置元件 並配置IP參數。如下圖所示:
第四步:在要欺騙的http請求中,修改Implementation為httpclient模式,修改Source IP Address,指定請求要用到的本地地址(參數化)
在sample-http請求中修改Implementation為httpclient模式,Source IP Address中調用設置的參數(CSV Data Set config中設置的變數名字:IP),如下圖所示:
第五步:添加察看結果樹,運行Jmeter,查看結果樹。如下圖所示:
都傻眼了吧,沒有看到請求的IP地址,那你就加一個可以顯示你IP地址的方法。宏哥這裡添加了一個加了一個BeanShell 取樣器 內容:log.info(“${ip}”),如下圖所示:
再次運行查看,如下圖所示:
8.小結
說明:我看有的部落格說官方文檔是在jmeter2.5以上的版本有此功能的實現~但是有人在以下的版本也實現了,宏哥沒有親自操作,有興趣的小夥伴可以看一下。
我們已經實現了請求來自不同的IP地址,也就實現我們的IP欺騙的技術注意事項:
(1) 我們添加的IP地址一定是未被使用的,這部分需要手動驗證,這點和LR是有區別;
(2) 我們添加的地址需要複製到文本文件,然後進行參數化;
(3) 在壓力測試腳本中需要引用參數化變數,不要忘記。
細心的小夥伴們會注意到宏哥前後截圖不一樣,那是因為在實踐過程中,宏哥開始在本地實戰時,直接把網給乾沒有了,所以宏哥後來直接就在伺服器上實戰了,有線網沒有了不要著急,在設備管理器中將網卡卸載,切記不要勾選刪除卸載項的那個按鈕,然後重啟電腦,電腦會自動載入網卡,有線網路恢復。這個針對宏哥的現象可能不適合你們,但是遇到了也可以試一下。
好了,今天就到這裡吧,這篇寫的挺費勁。
您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波 推薦 不要忘記哦!!!
別忘了點 推薦 留下您來過的痕迹