使用IP欺騙功能時,需要將系統防火牆,殺毒軟體關閉(如果有影響的話)
一、為什麼要設定IP欺騙
1、 當某個IP的訪問過於頻繁,或者訪問量過大時,伺服器會拒絕訪問請求,這時候通過IP欺騙可以增加訪問頻率和訪問量,以達到壓力測試的效果。
2、 某些伺服器配置了負載平衡,使用同一個IP不能測出系統的實際效能。LR中的IP欺騙通過調用不同的IP,可很大程度上的類比實際使用中多IP訪問和測試伺服器均衡處理的能力。
二、IP欺騙設定方法
l 在配置前首先要確定本地IP是固定的,不能是自動擷取的
l 所添加的IP只能是區域網路內的網段,即只能添加192段,127段,10段的IP地址
l IP Spoofer 在串連 Load Generators 之前啟用
開啟開始菜單中的LoadRunner檔案夾下的Tools檔案夾,點擊IP Wizard:
第一次運行IP Wizard需要選擇第一項“Create new settings”,如果以前運行過,可以選擇第二項,選擇儲存好的檔案;第三項用於使用IP欺騙進行測試完成後,釋放IP的。(因為該操作會佔用大量的IP資源,可能會導致其他機器沒有IP可用的尷尬局面,使用該項,可以恢複到原來的狀況)。
這裡選擇第一項,“下一步”,出現IP Wizard的第二個視窗:
這裡輸入Web Server的IP地址(這裡輸入應用程式所在的伺服器的IP地址,IP Wizard將會檢查伺服器路由表是否需要更新,如果需要更新的話,將會產生相應的指令碼協助你來補救伺服器路由表,如果伺服器和用戶端在同一網段,這個IP可以不填)。然後“下一步”,出現嚮導的第三個視窗:
從“From IP”文字框中輸入要使用IP範圍的第一個IP值,然後在“Numbers to Add”輸入一個數字,表示IP範圍的值;“Submask”使用預設情況,取決於使用的那種類型的網路IP,一般區域網路內採用Class C即可。
建議此處選擇Save as 儲存IP。儲存IP列表後,下次使用時,可以直接匯入IP列表;也可以直接修改儲存的IP列表檔案,再匯入。
設定完成後,重新啟動電腦。
重啟後,在命令列輸入ipconfig查看IP:
三.在情境中使用IP欺騙
1.勾選“Scenario”--“Enable IP spoofer”;
2.勾選“Tools”—“Export Mode”;
3.“Tools”—“Options”—“General”
Multiple IP address mode選擇“IP address allocation per process”
這個選項一定要與當前情境的模式相匹配,也就是說使用本地虛擬IP測試時需要選中線程方式,使用負載產生器使用虛擬IP測試時需要選中進程方式。
4.“Diagnositics”—“Configuration”
“Web Page Diagnostics”設定為Disable.
四、驗證是否生效
方法一:
在指令碼中添加如下代碼:
char *ip = lr_get_vuser_ip();
if (ip)
lr_output_message("The IP address is %s", ip);
else
lr_output_message("IP spoofing disabled");
註:這個在generator中是不生效的,所以在回放代碼時看到的都是“IP spoofing disabled”.在Controller中設定了啟用IP欺騙後,日誌中就可以看到。如:
方法二:
Controller的運行頁,運行情境,在Vusers中,狀態列中右鍵可以查看Vuser日誌,彈出的提示框頭幾行就有顯示當前使用的IP.
五. 釋放IP
開啟開始菜單中的LoadRunner檔案夾下的Tools檔案夾,點擊IP Wizard:
選中第三項:
重啟電腦即可。
六、使用中遇到的問題
1. 啟用IP欺騙後,運行1個虛擬使用者的情境都失敗;不啟用IP欺騙後,運行情境通過;
原因:查看失敗的虛擬使用者使用的IP地址,在伺服器端通過ping等命令查看網路是否互連;如果伺服器ping不通虛擬ip,說明網路設定有問題,檢查網路設定。
2. 運行開始菜單下的IP-Wizard,提示以下錯誤:
原因:如果IP設定為“自動擷取”,在運行IP Wizard程式時會彈出錯誤提示;運行IP Wizard的機器必須使用固定的IP,不能使用動態IP.
3.添加IP欺騙後使用的IP,會有提示框提示儲存IP列表,確定,取消等按鈕,建議儲存IP列表再確定完成。
原因:儲存IP列表後,下次使用時,可以直接匯入IP列表;也可以直接修改儲存的IP列表檔案,再匯入。
4.添加IP欺騙和釋放IP,都要重啟機器後才會生效
原因:重啟後,網路設定才會生效。
5.運行情境時,報錯“Error... Failed to connect to load generator.Check the output windows for more details”
解決:手工啟動agent服務。
6.運行情境報錯“Action.c(30):Error: Socket descriptor not found. Hint:the problem might be solved applying the following:(1) Update Run-Time Settings to Run Vusers as a process.(2)Add the following line into mdrv.exe,[lr_socks] section:’ ExtCmdLineConc=-UsingWinInet Yes’”
解決方案:
a.根據錯誤提示,在Run-time Settings中的“Miscellaneous”項中設定“run vuser as a process”;在安裝目錄中的dat檔案夾中尋找mdrv.dat,找到[lr_socks]段,在最後添加“ExtCmdLineConc=-UsingWinInet Yes”一句。
b.在選擇了expert mode後,選擇option-general,選中“ip address allocation per process”
c.如果仍然報錯,在功能表列中點擊Diagnostics—configuration項,將web page diagnositics項的disable去掉(該路徑是在lr11中的位置,若是lr8.0,則在Diagnositics—Distribution,disable Web page Disagnositics選 項).