1. 程式人生 > >重新認識--LR檢查點

重新認識--LR檢查點

之前使用LoadRunner工具,一直認為,在開發指令碼中檢查點的設定是最容易的,直到現在,有一段時間沒碰LR,今天錄製了一段指令碼,設定了文字檢查點,回放指令碼後,總是報錯,描述一下我設定檢查點的步驟:

1、在需要新增檢查點的指令碼處,從Scrtpt檢視切換到Tree檢視;

2、在Tree檢視的快照中,選中需要檢查的文字內容滑鼠右鍵,選擇web_reg_find();

如圖:


3、新增之後,切換到Script檢視,並回放指令碼,發現Replay Log報錯

這個報錯,我重新添加了web_reg_find(),試了幾遍還是一樣的報錯~~~~~~

後來,修改web_reg_find()函式,添加了引數"SaveCount=para_count" 後  ,報錯問題解決了,程式碼如下:

最後,為了驗證文字檢查點是否成功,我在指令碼後面做了判斷輸出,回放後,又發現指令碼有問題,指令碼中一直是輸出  else部分的內容,如圖:


上面無論if()條件是否修改>或者<  都只輸出else部分的內容,後來,在查找了相關資料後,得出以下總結:

1、web_reg_find是先註冊(register)後查詢的;使用時將它放在請求語句的前面,而web_find是查詢前面的請求結果;使用時將它放在請求語句的後面。

2、web_reg_find引數中SaveCount記錄查詢匹配的次數,是在快取中查詢,而web_find是在頁面中查詢,web_reg_find的效率要高一些。

3、Run-time設定中的“enable image and textcheck”對web_find有效,而對web_reg_find無效。

4、web_find只支援在HTML模式下錄製的指令碼。

5、最後的那個問題,是由於web_reg_find()不能通過它的返回值來作為事務的判斷條件,因為web_reg_find()的返回值0和1表示web_reg_find()是否註冊成功(web_reg_find是註冊型別函式,它本身並不執行),並不代表查詢的內容是否存在,也就是說無論查詢的文字內容是否存在,都返回0 。