插入檢查點(diǎn)
靠LR自動(dòng)生成的腳本是不夠的,很難達(dá)到業(yè)務(wù)要求,因此需要對(duì)錄制完的腳本進(jìn)行完善,使其能達(dá)到業(yè)務(wù)模擬的要求 ,這樣盡可能地使虛擬用戶模擬時(shí)更接近用戶的實(shí)際使用。
在進(jìn)行壓力測(cè)試時(shí),經(jīng)常會(huì)有頁面間數(shù)據(jù)傳遞的操作。如果在測(cè)試過程中傳遞數(shù)據(jù)的次數(shù)逐漸增多,頁面就有可能發(fā)生傳遞混亂,或者客戶端與服務(wù)器端數(shù)據(jù)傳輸被中斷、傳輸過程中產(chǎn)生了錯(cuò)誤的數(shù)據(jù)等情況。為了判斷數(shù)據(jù)傳遞的正確性,LR提供了插入檢查點(diǎn)的方法。之前在入門篇的博客中有提到插入檢查點(diǎn)的原因,這里就不再細(xì)說了,大概提一下,是因?yàn)楫?dāng)事務(wù)的結(jié)束狀態(tài)為成功時(shí),并不能說明事務(wù)真的做成功了,比如用錯(cuò)的賬號(hào)密碼去跑腳本,事務(wù)狀態(tài)仍被置為pass,所以你們懂的了。
插入檢查 點(diǎn)的原理是通過檢查點(diǎn)函數(shù)將返回值的結(jié)果反映在controller的狀態(tài)面板上和analysis統(tǒng)計(jì)結(jié)果中。是基于LR中很多的API函數(shù)的返回值會(huì)改變腳本的運(yùn)行結(jié)果。比如檢查點(diǎn)函數(shù)web_find,如果它檢查到的結(jié)果為空,它的返回值就為LR_FAIL,這樣整個(gè)結(jié)果置為FAIL;反之,返回值則為LR_PASS,整個(gè)結(jié)果置為PASS。
在工作原理上是在VuGen中插入Text/Image檢查點(diǎn)。VuGen中包含Tree view和script view兩種視圖模式,一般情況下是使用script view模式,但在插入檢查點(diǎn)時(shí),一般都是在tree view模式下插入的,這樣可以保證插入檢查點(diǎn)的位置正確。插入檢查點(diǎn)有text check和image check兩種,選擇的檢查點(diǎn)函數(shù)也有兩個(gè),分別為web_find和web_reg_find,下面先介紹一下這2個(gè)函數(shù),最后在關(guān)聯(lián)函數(shù)再附上詳細(xì)代碼。
一、web_find檢查點(diǎn)函數(shù)
檢查點(diǎn)函數(shù)的參數(shù)格式:
web_find("web_find",//檢查點(diǎn)步驟名稱 "RightOf=go to",//定義查找字符串右邊界 "LeftOf=page",//定義查找字符串左邊界 "What=home",//定義檢查字符串內(nèi)容 LAST);
該函數(shù)的作用是在頁面中查找相應(yīng)的內(nèi)容,有幾點(diǎn)要注意的問題:
1)只能對(duì)基于HTML模式錄制的腳本進(jìn)行查找
2)該函數(shù)必須在頁面內(nèi)容顯示出來以后才能進(jìn)行查找,所以該函數(shù)必須寫在查找內(nèi)容所在頁