設置IP欺騙的原因:
1、當某個IP的訪問過於頻繁,或者訪問量過大是,服務器會拒絕訪問請求,這時候通過IP欺騙可以增加訪問頻率和訪問量,以達壓力測試的效果
2、某些服務器配置了負載均衡,使用同一個IP不能測出系統的實際性能。LR中的IP欺騙通過調用不同的IP,可很大程度上的模擬實際使用中多IP訪問和並測試服務器均衡處理的能力。
多個IP地址的設置:
可直接在本地連接中增加IP,或者通過LR自帶的工具“IP wizard”設置,當然也可以使用其它軟件設置,唯一需要注意的就是注意設置的IP的有效性,我在此次測試中使用了IP wizard,具體操作如下:
(首先,需要注意的是load Generator機器必須使用固定的IP,不能使用動態IP)
如果是動態IP,打開時會出現如下窗口:
1、開始——程序——lr——tools——IP wizard,此時會打開如下窗口:
三個單選按鈕:選擇第一個,新增ip;選擇第二個從保存好的文件中獲得ip;選擇第三個表示釋放所有添加的ip(我選擇了第一個)
2、next到如下窗口:
此時需要輸入,你將要測試的web服務器的ip,必須正確輸入,否則即便是新生成的ip(負載機器)聯接通過,run時依然出錯。
3、填寫好後,next到如下窗口:
該窗口中可以添加或者刪除ip
4、Add到以下窗口:
關鍵是在from ip欄輸入要產生虛擬ip的起始值、需要的虛擬ip數量
5、點擊OK
成功添加了所需要的ip,如果有ip已經被佔用,會有提示
6、finish:
上面會顯示本次增加的ip,選擇save as可以將本次增加的ip保存成文件,下次直接使用就可以,OK即可
7、重啓計算機纔可生效。重啓後可以用ping和ipconfig來檢查新添加的ip是否成功
注意:當用完後,要把IP地址釋放,不然其他人用不了這些IP。
點開始——程序——lr——tools——IP wizard,此時會打開如下窗口:
點第三個,釋放已經設置的IP,然後依次下一步,下一步。
在controller中的應用:
1、在conreoller中,Scenario——選Enable ip spoofer(允許使用ip欺騙)
2、conreoller中,tools——選expert mode
3、tools——options——General中關於線程還是進程的設置必須和run-time settings裏面的一致,否則IP欺騙失效
4、點Generators——Add所有新添加的IP——每個都去connect到Ready狀態
如果連接成功,任務欄上會有如圖顯示:
5、添加腳本,Vusers數量,設置場景
有兩種方案來設計場景
a、 本地使用虛擬IP設計場景(不帶負載生成器使用localhost進行測試)
在設置該類場景時,在場景中添加一個錄製好的腳本,該腳本中添加如下代碼便可看到虛擬用戶在使用哪個IP地址進行消息發送,該場景是通過線程方式進行性能測試。
char * ip;
ip=lr_get_vuser_ip();
if (ip)
{
lr_vuser_status_message("The ip address is %s",ip);
}
else
lr_vuser_status_message("IP spoofing disabled");
在controller中執行該腳本時,查看虛擬用戶運行狀態,便可看到當前虛擬用戶使用的哪個IP地址發送消息
b、 負載生成器使用虛擬IP設計場景
在設置該類場景時,需要添加負載生成器,建立負載生成器時輸入創建的虛擬IP,每個負載生成器爲一個虛擬用戶組,該場景是通過進程方式進行性能測試。
如何添加負載生成器創建場景在這裏就不多描述了。
但需要注意,選中Tools下的Expert mode,啓動專家模式
再點擊Tools下的options
在Genearl選項卡中設置已線程方式或進程方式進行性能測試,這個選項一定要與當前場景的模式相匹配,也就是說使用本地虛擬IP測試時需要選中線程方式,使用負載生成器使用虛擬IP測試時需要選中進程方式
注:
1、連接新添加IP之前,必須開啓lr Agent Process,否則失敗
2、如果run時候報網絡方面錯,可以查看防火牆之類的東西,比如關閉卡巴斯基等,此次測試就是因爲卡巴斯基的緣故run全部failed
3、要虛擬很多IP的情況:在一臺機上虛擬的IP跨網段的處理,可通過在服務器端添加路由來實現。
例:
【服務器】IP:192.168.0.1
【測試機】IP:192.168.0.2
測試機上添加的虛擬IP: 192.168.10.1~254
那麼在【服務器】端執行以下命令:
route add 192.168.10.0 mask 255.255.255.0 192.168.0.2
注:【格式: route add 虛擬IP網段號 mask 255.255.255.0 測試