軟件測試工具Loadrunner日誌參數的設置與使用

一、Run-Time Setting日誌參數的設置

在loadrunner的vuser菜單下的Run-Time Setting的General的LOG選項中可以對在執行腳本時Loadrunner對日誌的操作行為進行定義,下面我們在逐一介紹:

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”。但是,如果日誌記錄模式被禁用或者設置為“擴展”,則將腳本添加到場景、會話步驟或配置文件中將不會影響其日誌記錄設置。

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函數將帶有腳本部分的行號的消息發送到輸出窗口和日誌文件。


三、在腳本中定義日誌的輸出模式

int lr_debug_message (unsigned int message_level, const char *format, ... );

中文解釋:lr_debug_message函數在指定的消息級別處於活動狀態時發送一條調試信息。如果指定的消息級別未出於活動狀態,則不發送消息。您可以從用戶界面或者使用lr_set_debug_message,將處於活動狀態的消息級別設置為MSG_CLASS_BRIEF_LOG 或MSG_CLASSS_EXTENDED_LOG。要確定當前級別,請使用lr_get_debug_message。

unsigned int lr_get_debug_message ( );

中文解釋:lr_get_debug_message函數返回當前的日誌運行時設置。該設置確定發送到輸出端的信息。日誌設置是使用運行時設置對話框或通過使用lr_set_debug_message函數指定的。

int lr_set_debug_message (unsigned int message_level, unsigned int on_off);

中文解釋:lr_set_debug_message函數設置腳本執行的調試消息級別message_lvl。通過設置消息級別,可以確定發送哪些信息。啟 動設置的方法是將LR_SWITCH_ON作為on_off傳遞,禁用設置的方法是傳遞LR_SWITCH_OFF。

參數message_level說明:

日誌級別

C語言標誌

Runtime-setting - Log操作

Disabled

LR_MSG_CLASS_DISABLE_LOG

0

不勾選Enable logging

Brief

LR_MSG_CLASS_BRIEF_LOG

1

勾選Standard log

Extended Log

LR_MSG_CLASS_EXTENDED_LOG

16

勾選Extended log

Result Data

LR_MSG_CLASS_RESULT_DATA

2

勾選Data returned by server

Parameter Substitution

LR_MSG_CLASS_PARAMETERS

4

勾選Parameter substitution

Full Run-Time Trace

LR_MSG_CLASS_FULL_TRACE

8

勾選 Advanced trace

Only on error

LR_MSG_CLASS_JIT_LOG_ON_ERROR

512

勾選send messages only when an error occurs

參數on_off說明:

【LR_SWITCH_ON】啟用設置

【LR_SWITCH_OFF】禁用設置

看下面的小例子:

Action()

{

int log_leavl;

log_leavl = lr_get_debug_message();

lr_error_message ("當前是:%d",log_leavl);return 0;

}

當我設置只有錯誤信息(error)打印【勾選send messages only when an error occurs】,例子運行結果是:當前是:513;為什麼不是512呢,我發現我實際選擇的是【Enable logging + send messages only when an error occurs】,按上面的參數說明,就是【1+512】,也就是513了;因此:lr_get_debug_message返回的int數其實是所有勾選操作的代表值相加!

再看下面設置的例子:

Action()

{

//設置runtime-setting的日誌選項【不勾選Enable logging】

char *a;

a = "ABC";

lr_set_debug_message

(LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_ON);

//打開Runtime-setting Log 的Parameter substitution設置lr_debug_message(LR_MSG_CLASS_PARAMETERS,"打開參數保存的系統日誌");

lr_save_string("aa",a);lr_debug_message(LR_MSG_CLASS_PARAMETERS,"關閉參數保存的系統日誌");

lr_set_debug_message (LR_MSG_CLASS_EXTENDED_LOG |LR_MSG_CLASS_PARAMETERS,LR_SWITCH_OFF);

//關閉Runtime-setting Log 的Parameter substitution設置

return 0;

}

因為設置了runtime-setting不打印任何日誌,所以正常運行腳本應該沒有任何日誌輸出;但是使用lr_set_debug_message函數打開了日誌的設置(輸出保存參數操作的日誌)因此腳本運行到lr_save_string("aa",a)時,就輸出了日誌如下:

打開參數保存的系統日誌

Action.c(7): Notify: Saving Parameter "ABC = aa"

關閉參數保存的系統日誌


分享到:


相關文章: