1. 程式人生 > >Loadrunner常見的檢查點函式

Loadrunner常見的檢查點函式

LoadRunner中執行Web效能測試,很重要的一點,是需要對Web網站的響應進行一些檢查,以決定請求是否成功,這點很重要,如果設定不好,就會出現請求大面積失敗,效能卻非常高的情況。

一般,在Loadrunner中檢查點有兩種:圖片和文字。  

函式說明

常用的文字檢查點函式

1)web_find()函式用於從 HTML 頁中搜索指定的文字字串;

web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);
引數解釋:
  "web_find"定義該查詢函式的名稱;
  “LeftOf”和“RighOf=”用來定義查詢字元的左右邊界;
  “What=”定義查詢內容;
  例如上述引數舉例中的意思就是在頁面中查詢左邊界為b,右邊界為a,內容為name的資訊;
使用該函式注意事項:該函式是在查詢頁面中的內容,所以要放在要查詢的內容的後面;該函式只能在基於HTML模式錄製的指令碼中進行查詢
注意事項:使用該函式時,要在Vuser->Run-Tme Settings中更改下設定勾選“Enable Image and text check”。系統預設是不勾選該選項的。 

2)web_reg_find()函式註冊一個請求,以在下一個操作函式(如 web_url)檢索到的HTML網頁上搜索指定的文字字串;

web_reg_find("Search=Body","SaveCount=ddd","Text=aaa",LAST);
引數解釋:
Search用來定義查詢範圍,
SaveCount定義查詢計數變數名稱,該引數可以記錄在快取中查詢內容出現的次數,可以使用該值,來判斷要查詢的內容是否被找到;
Text用來定義需要查詢的字串
例如上述引數舉例中的意思就是Body中查詢內容為aaa的資訊,並將出現次數記錄在變數ddd中;
1. web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST);或
2. web_reg_find("Text=Payment Detdils", "Fail=Found",LAST);
解釋:
“Payment Details” 為你要檢查的文字;
若是1:指令碼執行到此處,若沒有找到check的字串,指令碼將FAIL,並且停止執行下去。反之,則一直執行下去。
若是2:指令碼執行到此處,若找到check的字串,指令碼將FAIL, 並且停止執行下去。反之,則一直執行下去。
使用該函式注意事項:該函式是在快取中查詢相應的內容,所以要放在查詢內容之前;通常情況下寫在如下六個函式之前:Web_castom_request(); web_image(); web_link(); web_submit_data(); web_submit_form(); web_url();
使用技巧:在該函式的引數中有個“SaveCount”,該引數可以記錄在快取中查詢內容出現的次數,我們可以使用該值,來判斷要查詢的內容是否被找到。

3)web_global_verfication()屬於註冊函式,註冊一個在web頁面中搜索文字字串的請求,與web_reg_find只在下一個Action函式中執行搜尋不同的是它在之後所有的Action類函式中執行搜尋指定的文字字串;

常用的圖片檢查點函式

1)web_image_check()函式用於從HTML頁面中查詢指定的圖片;

web_image_check("web_image_check","Alt=","Src=",LAST);
引數解釋:“Alt”和“Src”的值直接取該圖片在網頁原始碼中相應引數的值
注意事項:使用該函式時,要在Vuser->Run-Tme Settings中勾選Enable Image and text check,具體操作請看web_find()中的注意事項。
經過測試,該函式用到查詢內容前面或後面,都不影響查詢結果。   

重放Log常見資訊

web_find()和web_image_check()函式的日誌資訊(這兩個日誌資訊實際上是一樣的,只是輸出的函式名和引數不同)

1. 出現該資訊,說明沒有勾選Enable Image and text check

Action.c(22): Verification checks not enabled. web_image_check is skipped. See the 'Run-time settings/Preferences/Checks' [MsgId: MMSG-27197]
Action.c(22): web_image_check was successful [MsgId: MMSG-26392]

2. 出現該資訊,說明檢查點設定成功,且已經查詢到資訊

Action.c(22): "web_image_check" succeeded (1 occurrence(s) found. Alt="", Src="/xjcost/jsp/images/index1/edit_01.gif") [MsgId: MMSG-27192]
Action.c(22): web_image_check was successful [MsgId: MMSG-26392]

3. 出現該資訊,說明要查詢的內容沒有找到

Action.c(22): Error -27191: "web_image_check" failed (0 occurrence(s) found. Alt="", Src="/xjcost/jsp/images/index1/edit_1.gif") [MsgId: MERR-27191]
Action.c(22): web_image_check highest severity level was "ERROR" [MsgId: MMSG-26391]
出現此情況嘗試以下操作:
(1)檢查引數的資訊是否寫錯;
(2)如果是web_find(),檢查函式的位置是否在要查詢內容的後面;
(3)如果是web_image_check(),檢視該圖片的原始碼,看其是否是這個頁面上的圖片,很可能是圖片選擇錯誤,即所選圖片不屬於該頁面。

web_reg_find()函式的日誌資訊

1. 出現該資訊,說明內容已查詢到

Action.c(15): Registering web_reg_find was successful[MsgId: MMSG-26390]

2. 該資訊在replay log頁面是紅色顯示的,說明沒有找到內容

Action.c(27): Error -26366: "Text=ABC" not found for web_reg_find[MsgId: MERR-26366]
Action.c(27): web_submit_data("userLogin.struts") highest severity level was "ERROR", 18364 body bytes, 918 header bytes, 13 chunking overhead bytes[MsgId: MMSG-26387]
出現此情況嘗試以下操作:
(1)引數的資訊是否正確;
(2)檢視該函式是否在查詢內容的前面。