LoadRunner 技巧之思考時間設(shè)置
用戶訪問某個網(wǎng)站或軟件,一般不會不停地做個各種操作,例如一次查詢,用戶需要時間查看查詢的結(jié)果是否是自己想要的。例如一次訂單提交,用戶需要時間核對自己填寫的信息是否正確等。
也就是說用戶在做某些操作時,是會有停留時間的,我把這個時間叫思考時間。但利用代碼去執(zhí)行的時候是沒有時間的,當然,腳本運行本身是需要時間的,但比起人的思考時間要小很多。這也是我們?yōu)槭裁匆密浖泶嫒说哪承?a target="_self" style="word-break: break-all; color: #202859; text-decoration: none; line-height: normal !important; ">工作。
但有時候,我們在做性能測試時,為了更真實的模擬用戶的操作,需要給代碼加入思考時間。來看看在loadrunner是如何設(shè)置思考時間的。
打開loadrunner 的Virtual User Generator
菜單欄:Vuser ---Run-Time settings...,切換到Thark Time選項
好吧!為了更好的理解這個界面上設(shè)置,現(xiàn)在我們通過一個腳本來分析。
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); //事務(wù)結(jié)束 return 0; |
腳本有點長,但不要被嚇到了,重要的幾句我已經(jīng)加了注釋。你只用關(guān)注那幾行就行了。
lgnore think time:忽視思考時間,也就說勾選這一項的時候 ,你腳本中加入的lr_think_time 函數(shù)設(shè)置是無效的。選中這一項,運行上面的腳本。
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); 這條語句,顯現(xiàn)沒起到任何作用。
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. |
運行結(jié)果中多了一個 Think Time: 20.0000;這說明我們腳本中的lr_think_time(20); 起到了作用,選中這一項后,我們可以在腳本中任意的添加思考時間。
Multiply recorded think time by:錄制思考時間乘以,使用錄制思考時間的倍數(shù)。
其實,在我們腳本錄制的過程中,根據(jù)我們的操作,腳本中就可以生成相應(yīng)的思考時間。這個參數(shù)是根據(jù)腳本中的思考時間進行調(diào)整的。
例如:腳本是20秒,輸入2,那么在腳本實際運行時,思考時間將為40秒;輸入0.5 ,腳本在運行時的思考時間為10秒。下面選中此項,輸入0.5,再來查看腳本運行結(jié)果:
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:使用錄制思考時間的百分比。
通過指定思考的時間的范圍,可以設(shè)置思考時間值的范圍。假如思考時間為20秒,這里設(shè)置的范圍為50% 到100% ,那么腳本運行時候?qū)㈦S即的在這個范圍(10秒到20秒之間)內(nèi)取值。下面再來查看腳本運行時間:
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秒的范圍之內(nèi),你再次運行會發(fā)現(xiàn)這個時間不一樣,但不會超出設(shè)定的范圍。
Limit think time to:限制思考時間的最大值。
假如腳本設(shè)置的思考時間為20秒,選中這一項并設(shè)置為10秒。那么腳本在運行時,思考時間不會超過10秒。也就是說這設(shè)置同樣也制約前面幾個選項。這個你可以自行設(shè)置驗證。
感謝:
double trans_time; //定義變量 ....... if (trans_time) { lr_end_transaction("注冊",LR_AUTO); //事務(wù)結(jié)束 |
感謝上面這段代碼很好幫助我們理解思考時間。
備注:添加思考時間可以更真實的模擬用戶行為,但它同時降低了用戶并發(fā)。也就是說思考時間越長,對服務(wù)器的壓力會越小。
相關(guān)鏈接:
LoadRunner 技巧之THML 與 URL兩種錄制模式分析
posted on 2013-03-12 10:42 順其自然EVO 閱讀(634) 評論(0) 編輯 收藏 所屬分類: loadrunner 、性能測試