lr_user_data_point_instance()
記錄用戶定義的數據樣本,並將其與事務實例相關聯。
long lr_user_data_point_instance(const char * sample_name,double value,long transaction_handle);
參數說明:
sample_name:指示樣本類型名稱的字符串。
value:要記錄的值。
parent_handle:與data_point關聯的事務實例標識符。
lr_user_data_point_instance函數類似於lr_user_data_point,除了其transaction_handle參數,該參數允許您將數據點與特定事務實例相關聯。
此函數適用於與使用事務實例的LoadRunner集成的應用程序。
有關事務實例的詳細信息,請參閱lr_start_transaction_instance。
示例:lr_user_data_point_instance_ex
以下段每秒檢查CPU並記錄結果。
在以下示例中,用戶數據點實例記錄在id爲instance_id的特定事務實例期間在銀行帳戶上透支的金額。數據點的日誌標誌爲擴展,如果VuGen的日誌運行時設置設置爲擴展級別,則會記錄日誌。
int LIMIT = 1000;
long instance_id;
int amount_overdrawn;
amount_overdrawn = get_amount_overdrawn();
while(amount_overdrawn <LIMIT){
/ *通知事務正在啓動* /
instance_id = lr_start_transaction_instance(“withdraw”,0);
status = bank_withdraw(500); / *調用服務器API * /
/ *結束事務與操作結果 - 通過或失敗* /
if(status == 0)
lr_end_transaction_instance(instance_id,LR_PASS);
else
lr_end_transaction_instance(instance_id,LR_FAIL);
amount_overdrawn = get_amount_overdrawn();
/ *記錄透支作爲數據點的數量,並將其關聯
*具體的事務實例通過使用實例的id * /
lr_user_data_point_instance_ex(“Amount Overdrawn”,
(double)amount_overdrawn,instance_id,
DP_FLAGS_EXTENDED_LOG);
}}
lr_user_data_point_instance_ex
記錄用戶定義的數據樣本,並將其與事務實例相關聯。
long lr_user_data_point_instance_ex(const char * sample_name,double value,long transaction_handle,int log_flag);
參數說明:
sample_name:指示樣本類型名稱的字符串。
value:要記錄的值。
parent_handle:與data_point關聯的事務實例標識符。
log_flag:確定是否應記錄數據點:
DP_FLAGS_NO_LOG(1)
DP_FLAGS_STANDARD_LOG
DP_FLAGS_EXTENDED_LOG(3)
除了附加參數log_flag之外,lr_user_data_point_instance_ex函數與lr_user_data_point_instance相同。
記錄意味着將數據寫入文件。 lr_user_data_point_instance_ex使您能夠將數據點寫入Vuser日誌文件。當在VuGen中運行時,輸出爲output.txt
您可能需要根據要記錄的數據的重要性有條件地寫入數據點。當只需要記錄最重要的信息時,它可以是標準級別的一部分,也可以是需要更完整日誌記錄時的擴展級別。
log_flag表示日誌級別,並與在VuGen的日誌運行時設置中找到的設置相關,該設置指定腳本在腳本執行期間如何處理對文件的日誌記錄。如果將DP_FLAGS_EXTENDED_LOG傳遞給lr_user_data_point_instance_ex,則僅當激活擴展運行時日誌設置時纔會記錄數據點。如果log_flag是DP_FLAGS_STANDARD_LOG,那麼只有當標準設置處於活動狀態時,它纔會被記錄。 DP_FLAGS_NO_LOG表示此數據點從不寫入日誌文件。
示例:lr_user_data_point_instance_ex
以下段每秒檢查CPU並記錄結果。
在以下示例中,用戶數據點實例記錄在id爲instance_id的特定事務實例期間在銀行帳戶上透支的金額。數據點的日誌標誌爲擴展,如果VuGen的日誌運行時設置設置爲擴展級別,則會記錄日誌。
int LIMIT = 1000;
long instance_id;
int amount_overdrawn;
amount_overdrawn = get_amount_overdrawn();
while(amount_overdrawn <LIMIT){
/ *通知事務正在啓動* /
instance_id = lr_start_transaction_instance(“withdraw”,0);
status = bank_withdraw(500); / *調用服務器API * /
/ *結束事務與操作結果 - 通過或失敗* /
if(status == 0)
lr_end_transaction_instance(instance_id,LR_PASS);
else
lr_end_transaction_instance(instance_id,LR_FAIL);
amount_overdrawn = get_amount_overdrawn();
/ *記錄透支作爲數據點的數量,並將其關聯
*具體的事務實例通過使用實例的id * /
lr_user_data_point_instance_ex(“Amount Overdrawn”,
(double)amount_overdrawn,instance_id,
DP_FLAGS_EXTENDED_LOG);
}}