web_url()和web_link()這兩個都是頁面訪問型函數,實現HTTP請求中的GET方法。
web_url("在測試結果中要顯示的名字","URL=需要訪問的超連結位址",LAST);
web_link("在測試結果中要顯示的名字","TEXT=需要單擊的超連結名稱",LAST);
如果一個頁面有多個同名的超連結名,可以使用Ord關鍵字來選擇具體的連結。
同名連結的先後順序是根據HTML代碼的解釋順序來決定的(從左往右,從上往下)。
web_submit_date()和web_submit_form()提交資料給指定頁面。
web_submit_data();該函數無需前面頁面的支援,直接發送給對應頁面相關資料即可。
web_submit_data("login.pl",
"Action=http://www.testweb/login.asp",
"Method=POST",
"RecContentType=text/html",
"Referer=http://www.testweb",
"Mode=HTML",
ITEMDATA, /*要傳輸的資料
"NAME=username","VALUE=weisf",ENDITEM,
"NAME=password","VALUE=gggg",ENDITEM,
LAST);
web_submit_form();該函數會自動檢測頁面上是否存在form,然後將後面的ITEMDATA資料進行傳送。
web_submit_form("login.pl",
ITEMDATA, /*要傳輸的資料
"NAME=username","VALUE=weisf",ENDITEM,
"NAME=password","VALUE=gggg",ENDITEM,
LAST);
關聯函數:web_reg_save_param()
關聯的作用是將伺服器返回Server Response的內容儲存為參數。
添加關聯函數:Insert-New Step,在查詢方塊輸入web_reg_save_param。關聯函數的位置必須在請求之前。
函數常用的屬性:Search in,Left Boundary,Right Boundary,Instance,Relative Frame ID,Not Found,Save Length,Save Offset,Ignore Redirections。
Search in:如果只想獲得部分伺服器返回的內容,可以修改該選項。
Search in共有4個選項,Header Body Noresource All。
Noresource:指只從資源檔中關聯內容,即只從HTML檔案格式中抓內容。
Header Body All:這3個選項都是從請求返回的所有內容進行關聯處理,包括圖片、JS指令碼等。
Left Boundary,Right Boundary:左右邊界。
Instance:可以填寫任意一個整數或者All。填寫數字:從返回的內容中取出對應順序的值。填寫all:返回所有匹配過濾策略的值。
Relative Frame ID:這個選項是專門針對架構結構的網站設計的。
Not Found:設定沒有找到匹配內容時的處理。預設為ERROR。
Save Length:設定關聯出來的內容所需要儲存的長度。
Save Offset:設定關聯的內容位移量,從第幾位開始進行關聯操作。
如果關聯的左右邊界是動態,無法確定返回的關聯內容的長度,可以使用函數strtok()來進行字元內容切割(類似於Regex)
參數也可以設定位移量和長度,用函數lr_save_var()可以實現。
參數不能和值作比較,要先通過lr_eval_string()函數將其轉化成字串,然後再通過atoi()函數轉化為整數,才能和數值作比較。
文本檢查點函數:web_reg_find()
VuGen判斷指令碼是否執行成功是根據伺服器返回的狀態來確定的,如果伺服器返回的HTTP狀態為200K,那麼VuGen就會認為指令碼運行通過。
檢查點函數也是寫在請求前。(凡是註冊函數都要寫在請求前面)
文本檢查點與關聯的不同之處在於檢查點函數只能返回檢索到內容的次數。
函數常用屬性:search for specific text,search for text by start and end of string,search in,save count,fail if。
search for specific text:需要查詢的標準文本。
search for text by start and end of string:左右邊界。
search in:三個選項headers,body,all。
save count:記錄尋找內容的出現次數並儲存在一個參數中。
fail if:設定什麼情況下文本檢查點函數錯誤,有兩個選項found和NotFound。
事務相關的函數
事務回應時間不包括用戶端GUI時間(例如瀏覽器解釋頁面所消耗的時間)
事務相關的函數:
lr_get_transaction_duration("事務名"); //獲得對應事務達到該函數運行位置時持續的時間,返回double類型。
lr_get_transaction_wasted_time("事務名");//獲得對應事務達到該函數運行位置時的wasted時間,返回double類型。
lr_wasted_time(毫秒); //為一個事物添加wasted時間,無返回。
lr_stop_transaction("事務名"); //將一個事務暫停,該函數後的操作都不會被記入事務時間。
lr_resume_transaction("事務名");//將暫停事務恢複
盡量不要在事務內使用lr_think_time()函數;
wasted time:事務中應該扣除的由於其他原因導致的時間浪費。預設情況下,LR會將自身指令碼運行浪費的時間記入wasted time。如關聯、檢查點函數的時間。