腳本完善包括但不限于:
1、參數化
2、插入事務
3、插入檢查點
4、設定關聯
5、插入注釋
接下來逐個進行說明:
1、參數化:詳情請參考本站
2、插入事務:
3、設定檢查點
檢查點用來判斷測試步驟是否被正确的執行。檢查點有兩種:文本檢查點和圖檔檢查點。這兩種檢查點推薦檢查函數:
web_reg_find():作用是在緩存中查找相應的内容,必須放在請求函數之前,常用參數及含義如下:
web_reg_find("Search=Body", //定義查找範圍
"SaveCount=para_count", //定義查找計數變量名稱
"Text=test", //定義查找内容
LAST);
對上述檢查點的判斷校驗:
if(strcmp(lr_eval_string("{para_count}"),"0")==0)
lr_end_transaction("事務名稱", LR_PASS);
else
lr_end_transaction("事務名稱", LR_FAIL);
web_image_check():作用:在頁面中查找一個具體的圖檔,必須放在請求函數之後,常用參數及含義如下:
web_image_check("web_image_check", //函數标題
"Alt=", //圖示說明
"Src=", //圖檔連結位址
LAST);
使用該函數注意以下事項:
“Alt”和“Src”的值直接取該圖檔在網頁源代碼中相應參數的值
該函數是在緩存中查找相應的内容,是以要放在查找内容之前
使用該函數時,同樣需要在Vuser->Run-Tme Settings中勾選Enable Image and text check
web_reg_save_param():作用:将請求的動态資料資訊儲存到一個參數,必須放在請求函數之前,常用參數及含義如下:
web_reg_save_param(“paraName", //存放得到的動态内容的參數名稱
"LB=\"msg\":\"", //傳回資訊的左邊界字串。該屬性必須有,并且區分大小寫。
"RB=,\"code\":200",//傳回資訊的右邊界字串。該屬性必須有,并且區分大小寫。
"Search=Body", //傳回資訊的查找範圍。可以是Headers,Body,Noresource,All(預設)。該屬性質可有可無。
LAST);
對上述檢查點的判斷校驗:
if(strcmp(lr_eval_string("{paraName}"),"審批成功")==0)
lr_end_transaction("事務名稱", LR_PASS);
else
lr_end_transaction("事務名稱", LR_FAIL);
4、設定關聯:
什麼情況下使用關聯?
如果錄制腳本的過程中,伺服器會傳回一個動态的、變化的值給用戶端時,那麼就需要對該值進行關聯,否則事務不可能正常地完成。 例如:錄制完成飛機訂票系統後,回放腳本報錯,原因就是登入時的原來錄制時的會話ID已經失效,需要重新擷取伺服器傳回的sessionID。這就需要對該值設定關聯,自動擷取伺服器端傳回的該值并儲存為參數使用。
關聯的原理:
LR是通過左右邊界值來查找伺服器傳回給用戶端的值,是以關聯最難的是如何查找待關聯的左右邊界值。
關聯函數:
新版本web_reg_save_param_ex ( const char *ParamName, [const char *LB, ][const char *RB,]<List of Arributes> ,SEARCH FILTERS ,LAST );
舊版本web_reg_save_param (const char *ParamName, <list of Attributes>, LAST);
飛機訂票系統登入過程
如何設定關聯?
關聯方法包括自動關聯、手動關聯和一邊錄制一邊關聯。
自動關聯詳情請參考
手動關聯詳情請參考
5、插入注釋