一、Run-Time Setting日誌參數的設置
1、 Enable logging啓用日誌記錄
如果選中該選項Loadrunner在執行腳本時,進行日誌的記錄,否則不記錄日誌
2、 Send messages only when an error occurs 僅在出錯時發送消息
也稱爲 JIT (實時)消息傳遞,僅當錯誤發生時才寫入日誌,選擇該選項後則可以設置高級選項,指明日誌緩存的大小,loadrunner默認的日誌到小爲1k
3、 Always send messages
始終發送消息
4、 Standard log 標準日誌:創建在腳本執行期間發送的函數和消息的標準日誌,供調試時使用。
對於大型負載測試場景、優化會話或配置文件禁用此選項。
如果日誌記錄級別設置爲“標準”,當把腳本添加到場景、會話步驟或配置文件中時,日誌記錄模式將被自動設置爲“Send messages only when an error occurs”。
但是,如果日誌記錄模式被禁用或者設置爲“擴展”,則將腳本添加到場景、會話步驟或配置文件中將不會影響其日誌記錄設置。
//記錄所有的請求反饋的日誌,包括successful和fail的日誌
5、 Extended log-----Parameter substitution
參數替換:選擇此選項可以記錄 指定給腳本的所有參數及其相應的值
當腳本進行參數化、插入事務、關聯等優化後,在執行腳本過程中,參數化的值、事務所耗時間、關聯函數取出的變量值均會在日誌中輸出,這個選項對調試腳本查看參數化取值、關聯取值是否正確有着重要的作用
6、 Extended log-----Data returned by server
選擇此選項可以記錄服務器返回的所有數據。
Loadrunner會將所有對服務器發出請求後的response情況記錄在日誌中,從這個日誌中可以查看到服務器對請求的迴應是否正確,在使用關聯取值時往往需要到該日誌中查看需要關聯的值,從而確認所取數據左右邊界。
7、 Extended log-----Advanced trace 高級跟蹤
選擇此選項可以記錄 Vuser 在會話期間發送的所有函數和消息。
調試 Vuser 腳本時,該選項非常有用。
Loadrunner提供了一下幾個message函數:
1、lr_message
int lr_message (const char * format, exp1, exp2,...expn.);
中文解釋:lr_message函數將信息發送到日誌文件和輸入窗口。在VuGen中運行時,輸入文件爲output.txt。
例如:
char* abort="aborting";
lr_message ("login failed: %s", abort);
在日誌中將會看到:login failed: aborting
2、lr_log_message
int lr_log_message (const char * format, exp1, exp2,...expn.);
中文解釋:lr_log_message函數將消息發送到Vuser或代理日誌文件(取決於應用程序),而不是發送到輸出窗口。通過向日志文件發送錯誤消息或其他信息性消息,可以將該函數用於調試。
3、lr_error_message
int lr_error_message (const char *format, exp1, exp2,...expn. );
中文解釋:lr_error_message函數將錯誤消息發送到輸出窗口和Vuser日誌文件。
如果Run-time settings > General > Miscellaneous >Continue on error未被選中,當腳本執行到此處時將終止執行,這個函數所輸出的錯誤級別較高的信息,所以一般情況下如果使用該函數時選中Continue on error
4、lr_output_message
int lr_output_message (const char *format, exp1, exp2,...expn.);
中文解釋:lr_output_message函數將帶有腳本部分的行號的消息發送到輸出窗口和日誌文件。
總結了一下loadrunner中的log的使用,留個印:)
1、log的設置方式。
在 runtime setting中可以設置log的生成方式:
默認的log方式:
Enable logging選中,log option是Send messages only when an error occurs.
可以修改日誌的方式:
Always send messages(這種方式會一直打印輸出日誌,不僅在錯誤時)
standard log——記錄所有的請求反饋的日誌,包括successful和fail的日誌。
Extended log——可提供擴展的日誌信息,包括
Parameter subsititution——日誌中打印所有中使用的參數值。
Data returned by server——日誌中打印每個客戶端請求服務器返回的數據值
Advanced trace——日誌中打印所有的消息信息和函數執行信息
2、log的存儲方式
log的存儲路徑在res文件夾下。
如果是從腳本中直接關聯createscenario則在腳本的目錄下的res下。如果是直接createscenario然後再選擇腳本的話,則存儲在c盤,如“C:\Documents and Settings\USERNAME\LocalSettings\Temp\res\log”
具體該場景的日誌結果存哪,可以查看controll的result界面的resultsetting定義的目錄。
根據不同的log記錄級別,在log文件中記錄日誌。
3、log信息的分析
1)從log中得到虛擬用戶失敗的原因。
通常如果場景在運行時出現用戶失敗,則先要查看錯誤原因,可直接查看日誌,從日誌中查看ERROR的信息;
從outputdb中可以查看到錯誤代碼ERROR CODE
2)從日誌中確認每次分配給虛擬用戶的參數值
想判斷是否在場景中每個用戶使用不同的或預定義規則的參數,可以通過在log生成規則處設定爲parametersubsititution,然後查看每個日誌文件中的對應行參數值是否爲預計的參數值。可從此判斷出是否同用戶的實際使用類似,是否達到對服務器的壓力策略。
3)從日誌中確認服務器端返回的值是什麼。
在腳本中通常設定了檢查點,檢查點策略是否生效,如果對此產生懷疑則可以考慮從日誌中查看一下。查看服務器返回的值來驗證是不是所期待得到的值。
思考問題
log的輸出 會不會影響到客戶端,會不會使客戶端成爲瓶頸?(認爲是會的,任何程序都是要消耗資源的,loadrunner也一樣,所以選取日誌輸出的模式是要謹慎考慮儘量以適用爲前提)