Loadrunner中web_reg_save_param函數使用詳解
* 應用范圍
在使用Loadrunner進行性能測試時,經常遇到一種情況,需要通過web頁面修改某事務的狀態。于是需要首先讀出當前的事務的狀態,再進行修改,此時便可以使用到web_reg_save_param了??梢酝ㄟ^它先將事務的狀態讀出寫入一個自定義的變量中,根據變量的值來決定下一步的動作。
* 簡要說明
語法:
int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);
參數說明:
* ParamName: 存放得到的動態內容的參數名稱
* list of Attributes: 其它屬性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。屬性值不分大小寫
o Notfound: 當在返回信息中找不到要找的內容時應該怎么處理
o Notfound=error: 當在返回信息中找不到要找的內容時,發出一個錯誤訊息。這是缺省值。
o Notfound=warning: 當在返回信息中找不到要找的內容時,只發出警告,腳本也會繼續執行下去不會中斷。
o LB( Left Boundary ) : 返回信息的左邊界字串。該屬性必須有,并且區分大小寫。
o RB( Right Boundary ): 返回信息的右邊界字串。該屬性必須有,并且區分大小寫。
o RelFrameID: 相對于URL而言,欲查找的網頁的Frame。此屬性質可以是All或是數字,該屬性可有可無。
o Search : 返回信息的查找范圍??梢允荋eaders,Body,Noresource,All(缺省)。該屬性質可有可無。
o ORD : 說明第幾次出現的左邊界子串的匹配項才是需要的內容。該屬性可有可無,缺省值是1。如為All,則將所有找到的內容儲存起來。
o SaveOffset : 當找到匹配項后,從第幾個字元開始存儲到參數中。該屬性不能為負數,缺省值為0。
o SaveLen :當找到匹配項后,偏移量之后的幾個字元存儲到參數中。缺省值是-1,表示一直到結尾的整個字串都存入參數。
o Convert : 可取的值有以下兩種:
HTML_TO_URL : 將 HTML-encoded 資料轉成 URL-encoded 資料格式
HTML_TO_TEXT : 將 HTML-encoded 資料轉成純文字資料格式
* 實例講解
目的:取得頁面中的商品狀態,如果狀態是正常態就改為注銷態,否則改為正常態。
錄制腳本使用的是URL based script
將返回的數據記錄到日志
* 直接手工訪問頁面,檢查URL
該頁面上點擊右鍵,選擇屬性
看到URL,對照錄制下的腳本中有:
web_url("modifyOfferingStatePage.do",
"URL={url}/web/businessAclearcase/" target="_blank" >ccept/order/modifyOfferingStatePage.do?offeringId=
282172&offeringSpecId=1&offeringSpecName=普通寬帶(ADSL/LAN)&customerName=
{clientname}&nodeId=260000&pos1=定購管理&pos2=修改商品狀態",
"Resource=0",
"RecContentType=text/html",
"Referer={url}/web/businessAccept/order/orderMenu.do",
"Snapshot=t23.inf",
"Mode=HTTP",
LAST);
于是在這段代碼前添加注冊函數:
web_reg_save_param("oldstate",
"LB/IC=原有商品狀態:</td>",
"RB/IC=</td>",
"Search=body",
"Ord=1",
"RelFrameId=1",
"SaveOffset=57",
"SaveLen=4",
LAST);
web_url("modifyOfferingStatePage.do",
"URL={url}/web/businessAccept/order/modifyOfferingStatePage.do?offeringId=
282172&offeringSpecId=1&offeringSpecName=
普通寬帶(ADSL/LAN)&customerName={clientname}&nodeId=
260000&pos1=定購管理&pos2=修改商品狀態",
"Resource=0",
"RecContentType=text/html",
"Referer={url}/web/businessAccept/order/orderMenu.do",
"Snapshot=t23.inf",
"Mode=HTTP",
LAST);
原文轉自:http://www.anti-gravitydesign.com