對80%的用戶瀏覽商品,20%用戶交易,交易的前提是先瀏覽一個商品,也就是所有用戶(100%)都瀏覽了商品,只有20%的用戶去交易。這樣是合乎邏輯的。
事務函數
在上面的腳本中我們用到了lr_start_transaction()函數和 lr_end_transaction()函數來標識一個事務的開始與結束,除些之外,loadrunner還提供了許多與事務相關的函數,這里介紹幾個常用的。
1、lr_set_transaction_instance_status 用于設置事務的狀態,事務的狀態包括:LR_PASS、 LR_FAIL 、 LR_AUTO 、 LR_STOP ??梢栽谀_本中根據條件設置事務的狀態,例如,根據檢查點返回的結果來設置事務為通過還是失敗。
if(event == GENERAL_ERROR) lr_set_transaction_instance_status(LR_FAIL); lr_end_transaction("登陸",LR_AUTO); |
2、 lr_fail_trans_with_error與lr_set_transaction_instance_status 類似,都可以用于設置事務的狀態,區別在于lr_fail_trans_with_error除了可以設置的狀態,還可以輸出錯誤日志信息。
if(status != SUCCESS) lr_fail_trans_with_error("an error has occurred:%s",my_get_error_string(status)); lr_end_transaction("登陸成功",LR_AUTO); |
3、lr_get_transaction_status與前兩個函數的作用相反,用于獲取事務的狀態。
if(status != SUCCESS) lr_fail_trans_with_error("an error has occurred:%s",my_get_error_string(status)); lr_end_transaction("登陸成功",LR_AUTO); |
4、lr_get_transaction_duration 用于獲取事務所消耗的時間。這個就比較有意思了。
我們登錄百度首頁,插入一個事務,然后訪問百度注冊頁面。下面計算訪問注冊頁面的時間。
完整腳本:
View Code
Action()
web_url("www.baidu.com", lr_start_transaction("訪問注冊頁"); //定義事務開始
web_link("???", trans_time=lr_get_transaction_wasted_time("訪問注冊頁"); //獲得消耗時間
if (trans_time) { lr_end_transaction("訪問注冊頁",LR_AUTO); //事務結束
return 0; |
原文轉自:http://www.uml.org.cn/Test/201303151.asp