Loadrunner之指令碼篇 事務函式

2022-07-23 21:06:16 字數 2554 閱讀 3484

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的檔案...