免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Loadrunner 腳本優(yōu)化

 腳本優(yōu)化-事務函數(shù)簡介

by:授客QQ1033553122

1.事務的開始和結束名稱需要相同

lr_start_transaction(“transaction_name”);

…//事務處理

lr_end_transaction(“transaction_name”,LR_AUTO);

 

2.事務和子事務

VuGen中可以通過事務來完成一組操作的響應時間監(jiān)控,如果想監(jiān)控某一個事務中某一步操作的響應時間,就要使用子事務來完成。當然也可以使用事務嵌套

lr_start_sub_transaction(“子事務名”,“父事務名”);

lr_end_sub_transaction(“子事務名”,子事務狀態(tài));

注意:子事務和父事務很像,但是父事務支持的很多函數(shù)在子事務中都無法實現(xiàn),所以應酌情考慮。

 

例:做一個登錄的事務,同時把打開登錄頁面和登錄操作都做成一個事務,這樣就可以得到三個事務的時間:打開頁面和登錄操作及整個操作的時間。

Action()

{

   //開始登錄事務

   lr_start_transaction("login");

   

   //打開登錄界面

   lr_start_sub_transaction("loginpage", "login");  

   web_url("WebTours",

       "URL=http://127.0.0.1:1080/WebTours/",

       "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.事務狀態(tài)

在默認情況下使用LR_AUTO來作為事務狀態(tài),對于一個事務有以下4個狀態(tài)可以選擇。

1)LR_AUTO

指事務的狀態(tài)由系統(tǒng)自動根據(jù)默認規(guī)則來判斷,結果為PASS/FAIL/STOP

LR_AUTO也是根據(jù)服務器的返回狀態(tài)信息來決定事務是以LR_PASS狀態(tài)通過還是以LR_FAIL狀態(tài)結束,只要服務器返回頁面,那么事務就會認為請求成功發(fā)出去了,服務器看懂了請求也返回了內(nèi)容,自然事務就是PASS狀態(tài)。

這樣由于事務的自動判斷,導致雖然操作失敗的,但是得到了一個響應時間,并且這個響應時間又沒正確反映出做這件事情的真正時間,最終影響測試結果。添加檢測函數(shù)有時候可以解決這個問題

 

例:判斷是否登錄成功(lr自帶web站點為例)



Action2()

{

   lr_start_transaction("login");

 

   //打開登錄界面

   web_url("WebTours",

       "URL=http://127.0.0.1:1080/WebTours/",

       "Resource=0",

       "RecContentType=text/html",

       "Referer=",

       "Snapshot=t16.inf",

       "Mode=HTML",

       LAST);

 

   lr_think_time(4);

 

   //注意函數(shù)的位置

   // jojo1為要查找的文本(實際文本如上圖,jojo,僅在登錄后才出現(xiàn),這里為了演示故意找不存在的文本)

web_reg_find("Search=Body", "SaveCount=login_times", "Text=jojo1",LAST);

 

   //提交登錄頁面的表單

   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_think_time(4);

   

   if(atoi(lr_eval_string("{login_times}"))>= 1) //找到“jojo”,說明登錄成功

       lr_end_transaction("login", LR_PASS);

   else //未找到,說明登錄失敗

   lr_end_transaction("login", LR_FAIL); 

    return 0;

}

運行結果:


 

2)LR_PASS

指事務是以PASS狀態(tài)通過的,說明改事務正確地完成了,并且記錄下對應的時間,這個時間就是指做這件事情所需要消耗的時間。

 

3)LR_FAIL

LR_FAIL是指事務以FAIL狀態(tài)結束,該事務是一個失敗的事務,沒有完成事務中腳本應該達到的效果,得到的時間不是正確操作的時間,這個時間在后期的統(tǒng)計中將被獨立統(tǒng)計。

 

4)LR_STOP

LR_STOP將事務以STOP狀態(tài)停止。

 

說明:

事務的PASSFAIL狀態(tài)會在場景的對應計數(shù)器中記錄,包括通過的次數(shù)和事務的響應時間,方便后期分析改事務的吞吐量以及響應時間的變化情況

 

4.事務相關的函數(shù)

//獲得對應事務達到該函數(shù)運行位置時持續(xù)的時間,返回double類型

lr_get_transaction_duration(“事務名”);

 

//獲得對應事務達到該函數(shù)運行位置時的wasted時間,返回double類型。

lr_get_transaction_wasted_time(“事務名”);

 

//為一個事務添加wasted時間,無返回值

lr_wasted_time(毫秒)


 

//將一個事務暫停,該函數(shù)后的操作都不會被記錄事務時間

lr_stop_transaction(“事務名”);

 

Action2()

{

   double duration  = 0;

   double wastedtime = 0;

 

   lr_start_transaction("login");

   //打開登錄界面

   web_url("WebTours",

       "URL=http://127.0.0.1:1080/WebTours/",

       "Resource=0",

       "RecContentType=text/html",

       "Referer=",

       "Snapshot=t16.inf",

       "Mode=HTML",

       LAST);

 

   lr_think_time(4);

 

   //事務達到該函數(shù)運行位置時持續(xù)的時間

   duration = lr_get_transaction_duration("login");

   lr_output_message("duration %f", duration);

 

   //事務達到該函數(shù)運行位置時浪費的時間

   wastedtime = lr_get_transaction_wasted_time("login");

   lr_output_message("wastedtime %f", wastedtime);

 

   //為事務添加一個浪費時間5s//該浪費時間無法直接通過lr_get_transaction_wasted_time獲得

   lr_wasted_time(5);

   wastedtime = lr_get_transaction_wasted_time("login");

 lr_output_message("wastedtime %f", wastedtime);

 

   //暫停事務

   lr_stop_transaction("login");

 

   //注意函數(shù)的位置

   web_reg_find("Search=Body", "SaveCount=login_times", "Text=jojo",LAST);

 

   //提交登錄頁面的表單

   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_think_time(4);

 

   //事務達到該函數(shù)運行位置時浪費的時間

   wastedtime = lr_get_transaction_wasted_time("login");

   lr_output_message("wastedtime %f", wastedtime);

 

   if(atoi(lr_eval_string("{login_times}")) >= 1)

       lr_end_transaction("login", LR_PASS);

   else

       lr_end_transaction("login", LR_FAIL);

  

   return 0;

}



 

注意:通過代碼stop事務后可以重新通過lr_start_transaction函數(shù)恢復被暫停的事務

 

5.包含“資源下載”的事務處理

一般情況都可以十分簡單地獲得請求的響應時間,但是對于下載操作來說就并不是那么方便了,這個時候需要利用一個web_get_int_property()函數(shù)來解決。

Action()

{

inti;

lr_start_transaction(“download”);

web_url(“LoadRunner”,”RUL=http://127.0.0.1/loadrunner.iso”,LAST);//下載操作請求

i=web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

if(i>5000)//當下載的文件大小大于5000個字節(jié)時認為下載成功,否則失敗。

lr_end_transaction(“download”,LR_PASS);

else

lr_end_transaction(“download”,LR_FAIL);

}

一般來說,對于下載操作的性能測試集中在需要多少時間彈出下載對話框,而后面的內(nèi)容其實屬于網(wǎng)絡帶寬的問題了,另一個方面現(xiàn)在很少使用IE進行直接下載,而采用迅雷一類的p2p下載工具,所以很少考慮具體下載文件操作對網(wǎng)絡和服務器讀寫操作的影響。

 

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
loadrunner對事務狀態(tài)的跟蹤
3.9 事務 - AJava
LoadRunner之VuGen事務
使用Loadrunner 調(diào)用Webservice接口測試優(yōu)化總結 | 大愛
LoadRunner常用函數(shù)
LoadRunner腳本編寫之三(事務函數(shù))
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服