1.事務的開始和結束名稱需要相同
lr_start_transaction(「transaction_name」);
…//事務處理
lr_end_transaction(「transaction_name」,lr_auto);
2.事務和子事務
在vugen中可以通過事務來完成一組操作的響應時間監控,如果想監控某乙個事務中某一步操作的響應時間,就要使用子事務來完成。當然也可以使用事務巢狀
lr_start_sub_transaction(「子事務名」, 「父事務名」);
lr_end_sub_transaction(「子事務名」, 子事務狀態);
注意:子事務和父事務很像,但是父事務支援的很多函式在子事務中都無法實現,所以應酌情考慮。
action()
//開始登入事務
lr_start_transaction("login");
//開啟登入介面
lr_start_sub_transaction("loginpage", "login");
web_url("webtours",
"url=",
"resource=0",
"reccontenttype=text/html",
"referer=",
"snapshot=t16.inf",
"mode=html",
last);
lr_end_sub_transaction("loginpage", lr_auto);
lr_think_time(4);
//提交登入頁面的表單
lr_start_sub_transaction("submit", "login");
web_submit_form("login.pl",
"snapshot=t17.inf",
itemdata,
"name=username", "value=jojo", enditem,
"name=password", "value=bean", enditem,
"name=login.x", "value=0", enditem,
"name=login.y", "value=0", enditem,
last);
lr_end_sub_transaction("submit", lr_auto);
lr_end_transaction("login", lr_auto);
執行結果:
3.事務狀態
在預設情況下使用lr_auto來作為事務狀態,對於乙個事務有以下4個狀態可以選擇。
1) lr_auto
指事務的狀態由系統自動根據預設規則來判斷,結果為pass/fail/stop
lr_auto也是根據伺服器的返回狀態資訊來決定事務是以lr_pass狀態通過還是以lr_fail狀態結束,只要伺服器返回頁面,那麼事務就會認為請求成功發出去了,伺服器看懂了請求也返回了內容,自然事務就是pass狀態。
這樣由於事務的自動判斷,導致雖然操作失敗的,但是得到了乙個響應時間,並且這個響應時間又沒正確反映出做這件事情的真正時間,最終影響測試結果。新增檢測函式有時候可以解決這個問題
例:判斷是否登入成功(以lr自帶web站點為例)
action2()
")) >= 1)
else
return 0;
}執行結果:
2) lr_pass
指事務是以pass狀態通過的,說明改事務正確地完成了,並且記錄下對應的時間,這個時間就是指做這件事情所需要消耗的時間。
3) lr_fail
lr_fail是指事務以fail狀態結束,該事務是乙個失敗的事務,沒有完成事務中指令碼應該達到的效果,得到的時間不是正確操作的時間,這個時間在後期的統計中將被獨立統計。
4) lr_stop
lr_stop將事務以stop狀態停止。
說明:事務的pass和fail狀態會在場景的對應計數器中記錄,包括通過的次數和事務的響應時間,方便後期分析改事務的吞吐量以及響應時間的變化情況
4.事務相關的函式
//獲得對應事務達到該函式執行位置時持續的時間,返回double型別
lr_get_transaction_duration(「事務名」);
//獲得對應事務達到該函式執行位置時的wasted時間,返回double型別。
lr_get_transaction_wasted_time(「事務名」);
//為乙個事務新增wasted時間,無返回值
lr_wasted_time(毫秒)
//將乙個事務暫停,該函式後的操作都不會被記錄事務時間
lr_stop_transaction(「事務名」);
action2()
")) >= 1)
lr_end_transaction("login", lr_pass);
else
lr_end_transaction("login", lr_fail);
return 0;
}注意:通過**stop事務後可以重新通過lr_start_transaction函式恢復被暫停的事務
action()
loadrunder之指令碼篇 action分類
action分類 l vuser init 2.vuser end 3.action 在lr中使用者的初始化操作應該存放在vuser init中。使用者的結束操作存放在vuser end中。因為這兩個action在後面的run logic預設設定中是處在指令碼最先執行和最後執行的位置,並且負載時,不...
Loadrunder之指令碼篇 引數化方法
引數化旨在模擬多資料來進行測試,所以再選擇引數化你明確你引數化的內容!方法一 1 確定需要引數化的內容 2 選中需要引數化的內容 3 右鍵選中的內容 replace with a parameter 填寫引數名,型別 儲存 4 vuser parameter list中設定引數值和引數更新方式 5 ...
Loadrunder之指令碼篇 引數化同行取值
select next row 記錄選擇方式 same line as,這個選項只有當引數多餘乙個時才會出現,其作用是根據某乙個引數的行號取同一行。例中的做法如下 將多個引數存放在乙個引數檔案中 新建兩個引數newparam1和newparam2。分別開啟newparam1和newparam2的檔案...