LoadRunner 技巧之思考時間設置
用戶訪問某個網站或軟件,一般不會不停地做個各種操作,例如一次查詢,用戶需要時間查看查詢的結果是否是自己想要的。例如一次訂單提交,用戶需要時間核對自己填寫的信息是否正確等。
也就是說用戶在做某些操作時,是會有停留時間的,我把這個時間叫思考時間。但利用代碼去執行的時候是沒有時間的,當然,腳本運行本身是需要時間的,但比起人的思考時間要小很多。這也是我們為什么要用軟件來代替人的某些工作。
但有時候,我們在做性能測試時,為了更真實的模擬用戶的操作,需要給代碼加入思考時間。來看看在loadrunner是如何設置思考時間的。
打開loadrunner 的Virtual User Generator
菜單欄:Vuser ---Run-Time settings...,切換到Thark Time選項
好吧!為了更好的理解這個界面上設置,現在我們通過一個腳本來分析。
Action() double trans_time; //定義變量 web_url("www.baidu.com",
web_url("favicon.ico", web_url("su",
web_url("v.gif",
web_link("注冊", web_custom_request("urs.asmx", web_url("api", web_url("api_2",
if (trans_time) { lr_end_transaction("注冊",LR_AUTO); //事務結束 return 0; |
腳本有點長,但不要被嚇到了,重要的幾句我已經加了注釋。你只用關注那幾行就行了。
lgnore think time:忽視思考時間,也就說勾選這一項的時候 ,你腳本中加入的lr_think_time 函數設置是無效的。選中這一項,運行上面的腳本。
Action.c(62): The duration up to the submit is 0.032043 seconds Action.c(67): Notify: Transaction "注冊" ended with "Pass" status (Duration: 12.4113 Wasted Time: 0.0320). |
雖然我在腳本中加入了lr_think_time(20); 這條語句,顯現沒起到任何作用。
Replay think time:回放思考時間
來看第一個選項:
As recorded:取決于記錄,選種這一項再來運行上面的腳本。
Action.c(111): The duration up to the submit is 0.034508 seconds Action.c(116): Notify: Transaction "注冊" ended with "Pass" status (Duration: 50.4453 Think Time: 20.0000 Wasted Time: 0.0345). Ending action Action. |
運行結果中多了一個 Think Time: 20.0000;這說明我們腳本中的lr_think_time(20); 起到了作用,選中這一項后,我們可以在腳本中任意的添加思考時間。
Multiply recorded think time by:錄制思考時間乘以,使用錄制思考時間的倍數。
其實,在我們腳本錄制的過程中,根據我們的操作,腳本中就可以生成相應的思考時間。這個參數是根據腳本中的思考時間進行調整的。
例如:腳本是20秒,輸入2,那么在腳本實際運行時,思考時間將為40秒;輸入0.5 ,腳本在運行時的思考時間為10秒。下面選中此項,輸入0.5,再來查看腳本運行結果:
Action.c(111): The duration up to the submit is 0.036610 seconds Action.c(116): Notify: Transaction "注冊" ended with "Pass" status (Duration: 131.2022 Think Time: 9.9998 Wasted Time: 0.0366). |
注:將原諒腳本會有0.0002秒的誤差。
Use random percentage of recorded think time:使用錄制思考時間的百分比。
通過指定思考的時間的范圍,可以設置思考時間值的范圍。假如思考時間為20秒,這里設置的范圍為50% 到100% ,那么腳本運行時候將隨即的在這個范圍(10秒到20秒之間)內取值。下面再來查看腳本運行時間:
Action.c(111): The duration up to the submit is 0.036191 seconds Action.c(116): Notify: Transaction "注冊" ended with "Pass" status (Duration: 40.8002 Think Time: 15.0050 Wasted Time: 0.0362). |
這一次Think Time: 為15.0050,是在10到20秒的范圍之內,你再次運行會發現這個時間不一樣,但不會超出設定的范圍。
Limit think time to:限制思考時間的最大值。
假如腳本設置的思考時間為20秒,選中這一項并設置為10秒。那么腳本在運行時,思考時間不會超過10秒。也就是說這設置同樣也制約前面幾個選項。這個你可以自行設置驗證。
感謝:
double trans_time; //定義變量 ....... if (trans_time) { lr_end_transaction("注冊",LR_AUTO); //事務結束 |
感謝上面這段代碼很好幫助我們理解思考時間。
備注:添加思考時間可以更真實的模擬用戶行為,但它同時降低了用戶并發。也就是說思考時間越長,對服務器的壓力會越小。
相關鏈接:
LoadRunner 技巧之THML 與 URL兩種錄制模式分析
posted on 2013-03-12 10:42 順其自然EVO 閱讀(634) 評論(0) 編輯 收藏 所屬分類: loadrunner 、性能測試