關於LR中的EXTRARES

LoadRunner腳本之EXTRARES參數

EXTRARES:分隔符,表示標記下一個屬性是資源屬性的列表(list of resource attributes)。

【EXTRARES後的資源是由script、active、java applet、flash、CSS產生的請求產生的】
and 下面來看看,在EXTRARES後面的資源屬性是否能夠註釋掉...!Let's get the copy and learning started!
在罈子裏看到有人在討論Web請求中的EXTRARES後面的東西能不能不要,我看到一些人理所固然地認爲無關緊要,爲何呢?誰它的名字叫EXTRARES呢,事實上,性能測試是一門很嚴謹的技術,不可大意,在沒有100%把握以前咱們不該該下定論。

關於這一點,結論是EXTRARES部分不能刪,刪除了LR就不會去下載相關資源了,也就意味着一個請求的Response會變小,毫無疑問,響應時間就會變得快一些,吞吐量變得少一些,數據變得很是的不真實。

那麼我是如何來設計這個實驗模型得出這樣的結論的呢?咱們就以訪問某個web頁面來作這個實驗,怎麼作呢?

1) 錄製訪問本論壇首頁的GET請求(web_url函數生成),代碼以下:
web_url("bbs.51testing.com", 
"URL=http://bbs.51testing.com/", //51論壇摘抄
"TargetFrame=", 
"Resource=0", 
"RecContentType=text/html", 
"Referer=", 
"Snapshot=t2.inf", 
"Mode=HTML", 
EXTRARES, 
"Url=/images/default/menu_bg.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/frame_on.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/arrow_down.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/portalbox_bg.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/menu_itemline.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/forumlink.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/online.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/arrow_right.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/header_bg.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/default/cat_bg.gif", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=http://zs1.cnzz.com/stat.htm?id=1743488&r=&lg=zh-cn&ntime=0.35238800 1269021786&repeatip=6&rtime=1&cnzz_eid=80487640-1268962788-&showp=1280x800&st=357&sin=&res=0", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/cn.swf", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/fenl.swf", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/zazhi.swf", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
"Url=/images/zhuanti.swf", "Referer=http://bbs.51testing.com/default.php", ENDITEM, 
LAST);

2) 在此函數後使用web_get_int_property函數來取得響應的大小:
lr_output_message("%d", web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE));

3) 運行,獲得結果爲:1451146 (竟然有1.4M,這論壇首頁也太大了)
4) 將EXTRARES後面的屬性全拿掉(註釋便可),再次運行,獲得結果爲:700095 (700K不到,差很少節省了一半的大小)

如今結論基本有了:不能刪,那麼爲了再嚴謹一點,再併發10個用戶運行一次看看其響應時間和吞吐量是否一致

5) 不備註EXTRARES,打開Controller併發10個用戶運行1次,得出:
總吞吐量:14511462總請求數:430響應時間:54秒

6) 備註掉EXTRARES,打開Controller併發10個用戶運行1次,得出:
總吞吐量:7,000,941總請求數:280響應時間:26秒

從總吞吐量,咱們很容易看出這不能少,從總請求數,咱們也看出來,恰好少150個請求,爲何是150呢,由於咱們10個併發用戶作一次,每個Extrares後面跟了15個資源文件,10次固然是150個GET請求少掉咯。固然,這響應時間的差異也是一樣的,很是誇張,使人吃驚。

你們也能夠本身去作這樣的實驗來驗證這個結論,東西不能亂刪,包括默認錄製出來的一些Cookie信息,也不能隨便刪除,除非你知道它們都在幹嗎,你爲何須要/不須要它們。
此次項目測試關注的是login事務,即想要測試出客戶端發出登陸請求到服務器,服務器端再反饋回來給客戶端的時間。因此,不用關注到登陸到系統後,整個頁面的加載狀況,能夠適當的註釋掉不相干的腳本。
網友觀點:
A:能不能刪除,關鍵得看你作這個測試的目的是什麼,若是是看整個頁面的響應時間,那確定是不能刪除的...(跟我差很少的思想)
B:回樓上的,即便不對這個頁面進行相關指標的測試,哪怕這個頁面只是一個附加的頁面,好比只是爲了用來模擬真實用戶場景,或者只是對頁面裏的某一部份內容進行一下關聯,可是有與沒有是會對吞吐量和請求數形成影響的,吞吐量則會間接地對響應時間形成影響哦(好比帶寬不足的時候),另外從嚴謹性的角度來考慮,請求數多了,固然會對服務器形成多一些的壓力,那麼從這方面談影響那就多了去了。(考慮得真TM嚴謹)

 

不少人對Web請求中的EXTRARES後面的東西能不能不要表示不肯定,關於這一點,結論是EXTRARES部分不能刪,刪除了軟件測試工具LoadRunner就不會去下載相關資源了,
也就意味着一個請求的Response會變小,毫無疑問,響應時間就會變得快一些,吞吐量變得少一些,數據變得很是的不真實。
那麼我是如何來設計這個實驗模型得出這樣的結論的呢?咱們就以訪問http://bbs.XXXX.com這個頁面來作這個實驗,怎麼作呢?

錄製訪問本論壇首頁的GET請求(web_url函數生成),代碼以下: 
web_url("bbs.XXXX.com", 
		"URL=http://bbs.XXXX.com/", 
		"TargetFrame=", "Resource=0", 
		"RecContentType=text/html", 
		"Referer=", "Snapshot=t2.inf",

		"Mode=HTML",  
		EXTRARES, 
		"Url=/images/default/menu_bg.gif", 
		"Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/default/frame_on.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM,
		"Url=/images/default/arrow_down.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM,

		"Url=/images/default/portalbox_bg.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM,
		"Url=/images/default/menu_itemline.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/default/forumlink.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/default/online.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/default/arrow_right.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/default/header_bg.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM,
		"Url=/images/default/cat_bg.gif", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=http://zs1.cnzz.com/stat.htm?id=1743488&r=&lg=zh-cn&ntime=0.35238800%201269021786&repeatip=6&rtime=1&cnzz_eid=80487640-1268962788-&showp=1280x800&st=357&sin=&res=0", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/cn.swf", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, "Url=/images/fenl.swf", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, 
		"Url=/images/zazhi.swf", "Referer=http://bbs.XXXX.com/default.php", ENDITEM, "Url=/images/zhuanti.swf", "Referer=http://bbs.XXXX.com/default.php", ENDITEM,   
		LAST);


在此函數後使用web_get_int_property函數來取得響應的大小: lr_output_message("%d", web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE));


運行,獲得結果爲:1451146 (竟然有1.4M,這論壇首頁也太大了)


將EXTRARES後面的屬性全拿掉(備註便可),再次運行,獲得結果爲:700095 (700K不到,差很少節省了一半的大小)如今結論基本有了:不能刪,那麼爲了再嚴謹一點,再併發10個用戶運行一次看看其響應時間和吞吐量是否一致.


不備註EXTRARES,打開Controller併發10個用戶運行1次,得出:總吞吐量:14511462  總請求數:430   響應時間:54秒


備註掉EXTRARES,打開Controller併發10個用戶運行1次,得出: 總吞吐量:7,000,941  總請求數:280   響應時間:26秒 
從總吞吐量,咱們很容易看出這不能少,從總請求數,咱們也看出來,恰好少150個請求,爲何是150呢,由於咱們10個併發用戶作一次,每個Extrares後面跟了15個資源文件,10次固然是150個GET請求少掉咯。
固然,這響應時間的差異也是一樣的,很是誇張,使人吃驚。 
你們也能夠本身去作這樣的實驗來驗證這個結論,東西不能亂刪,包括默認錄製出來的一些Cookie信息,也不能隨便刪除,除非你知道它們都在幹嗎,你爲何須要/不須要它們。

 

 

http://www.51testing.com/html/29/n-1276429-5.html javascript

 

 

Loadrunner經常使用函數詳解(一)

web_urlphp

語法:
Int Web_url(const char *name, const char * url, , [EXTRARES,,LAST)html

返回值
成功時返回LR_PASS (0),失敗時返回 LR_FAIL (1)。java

參數:
Name:VuGen中樹形視圖中顯示的名稱,在自動事務處理中也能夠用作事務的名稱。web

url:頁面url地址。npm

List of Attributes數組

EXTRARES:分隔符,標記下一個參數是資源屬性的列表了。瀏覽器

List of Resource Attributes緩存

LAST:屬性列表結束的標記符。服務器

說明
Web_url根據函數中的URL屬性加載對應的URL,不須要上下文。

只有VuGen處於URL-based或者HTML-based(此時A script containing explicit URLs only選項被選中時)的錄製模式時,web_url纔會被錄製到。

可使用web_url 模擬從FTP服務器上下載文件。web_url 函數會使FTP服務器執行文件被真實下載時的操做。除非手工指定了"FtpAscii=1",下載會以二進制模式完成。

在錄製選項中,Toos—Recording Option下,Recording選項中,有一個Advanced HTML選項,能夠設置是否錄製非HTML資源,只有選擇了「Record within the current script step」時,List of Resource Attributes纔會被錄製到。非HTML資源的例子是gif和jpg圖象文件。

經過修改HTTP頭能夠傳遞給服務器一些附加的請求信息。使用HTTP頭容許請求中包含其餘的內容類型(Content_type),象壓縮文件同樣。還能夠只請求特定狀態下的web頁面。

全部的Web Vusers ,HTTP模式下的WAP Vusers或者回放模式下的Wireless Session Protocol(WSP),都支持web_url函數。

web_image
語法:
Int web_image (const char *StepName, , [EXTRARES, ,] LAST );

返回值
成功時返回LR_PASS (0),失敗時返回 LR_FAIL (1)。

參數:
StepName:VuGen中樹形視圖中顯示的名稱,在自動事務處理中也能夠用作事務的名稱。

List of Attributes(服務器端和客戶端映射的圖片):SRC屬性是必定會被錄製到的,其餘的ALT、Frame、TargetFrame、Ordinal則是有的話會被錄製到。

一、ALT:描述圖象的元素。用鼠標指向圖象時,所浮出來的文字提示。

二、SRC:描述圖象的元素,能夠是圖象的文件名. 如: button.gif。也可使用SRC/SFX來指定圖象路徑的後綴。全部擁有相同此後綴的字符串都會被匹配到。

三、Frame:錄製操做時所在的Frame的名稱。

四、TargetFrame:見List of Attributes的同名參數。

五、Ordinal:參見Web_link的同名參數。

List of Attributes(客戶端映射的圖片):

一、AreaAlt:鼠標單擊區域的ALT屬性。

二、AreaOrdinal:鼠標單擊區域的順序號。

三、MapName:圖象的映射名。

List of Attributes(服務器端映射的圖片):儘管點擊座標不屬於屬性,但仍是以屬性的格式來使用。

一、Xcoord:點擊圖象時的X座標。

二、Ycoord:點擊圖象時的Y座標。

EXTRARES:分隔符,標記下一個參數是資源屬性的列表了。

List of Resource Attributes:參見List of Resource Attributes一節。

LAST:屬性列表結束的標記符。

說明
web_image模擬鼠標在指定圖片上的單擊動做。此函數必須在有前置操做的上下文中使用。

在Toos—Recording Option,若是錄製級別設爲基於HMTL的錄製方式時,web_image纔會被錄製到。

web_image支持客戶端(client-side)和服務器端server-side的圖片映射。

在錄製選項中,Toos—Recording Option下,Recording選項中,有一個Advanced HTML選項,能夠設置是否錄製非HTML資源,只有選擇了「Record within the current script step」時,List of Resource Attributes纔會被錄製到。非HTML資源的例子是gif和jpg圖象文件。

經過修改HTTP頭能夠傳遞給服務器一些請求附加信息。使用HTTP頭容許請求中包含內容,如同壓縮文件同樣。還能夠只請求特定狀態的web頁面。

web_image支持Web虛擬用戶,不支持WAP虛擬用戶。

例子
下面的例子模擬用戶單擊Home圖標以回到主頁(黑體部分):

web_url("my_home", "URL=http://my_home/", LAST);

web_link("Employees", "Text=Employees", LAST);

web_image("Home.gif", "SRC=../gifs/Buttons/Home.gif", LAST);

web_link("Library", "Text=Library", LAST);

web_image("Home.gif", "SRC=../../gifs/buttons/Home.gif", LAST);

下面的例子模擬用戶在客戶端映射的圖片上單擊:

web_image("dpt_house.gif",

"Src=../gifs/dpt_house.gif",

"MapName=dpt_house",

"AreaOrdinal=4",

LAST);

下面的例子模擬用戶在服務端映射的圖片上單擊:

web_image("The Web Developer's Virtual Library",

"Alt=The Web Developer's Virtual Library",

"Ordinal=1",

"XCoord=91",

"YCoord=17",

LAST);

下面是一個使用文件名後綴的例子:它指定了dpt_house.gif做爲後綴,因此象../gifs/dpt_house.gif、/gifs/dpt_house.gif、gifs/dpt_house.gif、/dpt_house.gif等都會匹配到。

web_image("dpt_house.gif",
"Src/sfx=dpt_house.gif", LAST);

web_link
語法:
Int web_link (const char *StepName, , [EXTRARES, ,] LAST );

返回值
成功時返回LR_PASS (0),失敗時返回 LR_FAIL (1)。

參數:
StepName:VuGen中樹形視圖中顯示的名稱,在自動事務設置中也被用作事務名稱。

List of Attributes:支持下列的屬性:

1.Text:超連接中的文字,必須精確匹配。

2.Frame:錄製操做時所在的Frame的名稱。

3.TargetFrame、ResourceByteLimit:見List of Attributes一節。

4.Ordinal:若是用給出的屬性(Attributes)篩選出的元素不惟一,那麼VuGen使用此屬性來指定其中的一個。例如:「SRC=abc.gif」,「Ordinal=3」標記的是SRC的值是「abc.gif」的第3張圖片。

EXTRARES:代表下面的參數將會是list of resource attributes了。

LAST:結尾標示符。

說明
模擬鼠標在由若干個屬性集合描述的連接上進行單擊。此函數必須在前置動做的上下文中才能夠執行。

web_link 僅僅在基於HTML的錄製方式中才會被VuGen捕捉到。

非HTML生成的資源的例子有.gif 和.jpg圖像。對於List of Resource Attributes參數來講,僅僅當Recording Options--Recording --HTML-based script-- Record within the current script step選項被選中時,它們纔會被插入到代碼中。

能夠經過改變HTTP頭信息給服務器傳遞一些附加信息。使用HTTP頭信息能夠,容許響應體中包含其餘的內容類型(Content-Type),例如壓縮文件,或者只有知足了特定的狀態纔去請求web頁。

此函數值支持Web虛擬用戶,不支持WAP虛擬用戶。

web_submmit_form
語法:
Int web_submit_form (const char *StepName, , , ITEMDATA, , [ EXTRARES, ,] LAST );

返回值
成功時返回LR_PASS (0),失敗時返回 LR_FAIL (1)。

參數:
StepName:Form的名字。VuGen中樹形視圖中顯示的名稱,在自動事務處理中也能夠用作事務的名稱。

List of Attributes:支持如下屬性:

1.Action:Form中的ACTION屬性,指定了完成Form中的操做用到的URL。也可使用「Action/sfx」 表示使用此後綴的全部Action。

2.Frame:錄製操做時所在的Frame的名稱。

3.TargetFrame、ResourceByteLimit:見List of Attributes的同名參數。

4.Ordinal:參見Web_link的同名參數。

VuGen經過記錄數據域惟一的標識每一個Form。若是這樣不足以識別Form,VuGen會記錄Action 屬性。若是還不足以識別,則會記錄Ordinal 屬性,這種狀況下不會記錄Action屬性。

List of Hidden Fields:補充屬性(Serves)。經過此屬性可使用一串隱含域來標識Form。使用下面的格式:

STARTHIDDENS,

"name=n1", "value=v1", ENDITEM,

"name=n2", "value=v2", ENDITEM,

ENDHIDDENS,

List of Data Fields

Data項用來標識form。Form是經過屬性和數據來共同識別的。

使用下面的格式來表示數據域列表

"name=n1", "value=v1", ENDITEM,

"name=n2", "value=v2", ENDITEM,

ITEMDATA:Form中數據和屬性的分隔符。

EXTRARES:一個分隔符,標記下一個參數是資源屬性的列表了。

List of Resource Attributes:參見List of Resource Attributes一節。

LAST:屬性列表結束的標記符。

說明
web_submit_form 函數用來提交表單。此函數可能必須在前一個操做的上下文中執行。在Toos—Recording Option,只有錄製級別設爲基於HMTL的錄製方式,web_image纔會被錄製到。

在錄製選項中,Toos—Recording Option下,Recording選項中,有一個Advanced HTML選項,能夠設置是否錄製非HTML資源,只有選擇了「Record within the current script step」時,List of Resource Attributes纔會被錄製到。非HTML資源的例子是gif和jpg圖象文件。

一般狀況下,若是錄製了web_submit_form 函數,VuGen會把「name」和「value」一塊兒錄製到ITEMDATA屬性中。若是不想在腳本中以明文顯示「value」,能夠對它進行加密。把 「Value」改成「EncryptedValue」,而後把錄製到的值改成加密後的值。

例如:能夠把 "Name=grpType", "Value=radRoundtrip", ENDITEM

改成:"Name=grpType", EncryptedValue=409e41ebf102f3036b0549c799be3609", ENDITEM

若是你完整的安裝了LoadRunner,那麼打開開始菜單--Mercury LoadRunner—Tools--Password Encoder,這個小工具是用來加密字符串的。把須要加密的值粘貼到Password一欄,再點Generate按鈕。加密後的字符串會出如今 Encoded string框中。接着點Copy按鈕,而後把它粘貼到腳本中,覆蓋原來顯示的「Value」。

加密的另外一種方法時使用lr_decrypt函數。方法:選擇整個字符串,例如「Value=radRoundtrip」(注意不要選擇引號),右擊鼠標,選擇Encrypt string選現,腳本會變爲:

"Name=grpType", lr_decrypt("40d176c46f3cf2f5fbfaa806bd1bcee65f0371858163"), ENDITEM,

web_submit_form支持Web虛擬用戶,不支持WAP虛擬用戶。

例子:
下面的例子中,web_submit_form 函數的名字是「employee.exe」。此函數提交了一個請求,此請求包含僱員信息John Green。此函數沒有使用屬性(Attributes)是由於經過數據項已經能惟一的標識這個Form了。

web_submit_form("employee.exe",

ITEMDATA,

"name=persons", "value=John Green - John", ENDITEM,

"name=go_page", "value=Go to Page", ENDITEM,

LAST);

web_submmit_data
語法:
Int web_submit_data ( const char *StepName, , ITEMDATA, , [ EXTRARES, ,] LAST );

返回值
返回LR_PASS(0)表明成功,LR_FAIL(1)表明失敗。

參數:
StepName:步驟名稱,VuGen中樹形視圖顯示的名稱。

List of Attributes:支持如下屬性:

1.Action:Form中的ACTION屬性,指定了完成Form中的操做用到的URL。

2.Method:表單提交方法:POST或GET(默認是POST)。

3.EncType:編碼方式。

4.EncodeAtSign:是否使用ASCII值對符號「@」編碼。Yes或者 No。

5.TargetFrame:包含當前連接或資源的Frame。參見List of Attributes的同名參數。

6.Referer、Mode:參見List of Attributes的同名參數。

ITEMDATA:數據域和屬性的分隔符。

List of Data:

數據域列表定義了表單提交的內容。因爲此請求是上下文無關的,所以數據域包含了全部的隱含域。使用Form的編碼規則組織數據域。

數據域列表可使用下面任意一種格式:

"name=n1", "value=v1", ENDITEM,

"name=n2", "EncryptedValue=qwerty", ENDITEM,

EXTRARES:分隔符,標記下一個參數將是資源屬性的列表。

List of Resource Attributes:參見List of Resource Attributes。

LAST:結束標記符。

說明
web_submit_data函數處理無狀態或者上下文無關的表單提交。它用來生成表單的GET或POST請求,這些請求與Form自動生成的請求是同樣的。發送這些請求時不須要表單上下文。

當VuGen設爲基於URL的錄製模式,或者基於HTML的錄製方式可是Recording Options—HTML Advanced 下的A script containing explicit URLs only 選項被選中時,web_submmit_data函數纔會錄製到。

不論你採用URL查詢的方式(GET),仍是採用請求體發送(POST)的方式,此函數都指示出Form中的數據是如何發送到服務器的。

若是VuGen處於HTTP錄製模式下,此時記錄Web進程時,會產生此函數。在提交Form時,若是沒法生成web_submit_form函數,VuGen也會生成web_submit_data函數。

在錄製選項中,Toos—Recording Option下—Recording選項中,有一個Advanced HTML選項,能夠設置是否錄製非HTML資源。只有選擇了「Record within the current script step」時,List of Resource Attributes纔會被錄製到。非HTML資源的例子是gif和jpg圖象文件。

EncType屬性給出一個內容類型,指定其作爲「Content-Type」請求頭的值。它指示了根據參數生成HTTP請求時使用的編碼類型(不是URL-encoding就是multi-part)能夠是下面的格式:

1.「EncType=application/x-www-form-urlencoded」

2.「EncType=multipart/form-data」 (任何的「; boundary=」都會被默認忽略掉)

3.「EncType=」 (空串,代表沒有產生內容類型(「Content-Type」)請求頭)

任何對於「EncType」的指定都會覆蓋web_add_[auto_]header函數指定的Content-Type。當省略了 「EncType」時,任何一個web_add_[auto_]header函數都會起做用。若是既沒有指定EncType也沒有 web_add_[auto_]header函數,且「Method=POST」,「application/x-www-form- urlencoded」會作爲默認值來使用。其餘狀況下,不會產生Content-Type請求頭。

ContentType:文件類型標識符,若是「EncType」是「multipart/form-data」用來上傳文件時,須要用到 「ContentType」。當在ITEMDATA中的Data子句中指定了「File=Yes」,且文件也在此子句中,ContentType才適用,此時它會做爲同一個子句的值來傳遞。

正常狀況下,「Content-Type」根據所上傳文件的擴展名自動生成。例如:

-----------------------------7d025e2b16b064e\r\n Content-Disposition: form-data; name="uploaded_file"; filename="D:\\temp\\a.txt"\r\n Content-Type: text/plain\r\n \r\n

不管如何,對於非瀏覽器的程序來講是特殊的,根據文件類型生成的「ContentType」不必定是正確的。這時,經過手工指定來覆蓋默認的「ContentType」。若是指定了空值,那麼「Content-Type」頭將不包含在文件中。

若是沒有顯示的指定「ContentType」的值,當上傳的文件爲空時,無論文件擴展名是什麼,都默認使用「application/x-unknown-content-type」作爲」ContentType」的值。

VuGen不會檢查指定的ContentType是否有效。

一般狀況下,若是錄製了web_submit_data 函數,VuGen會把「name」和「value」一塊兒錄製到ITEMDATA一節中。若是不想在腳本中以明文顯示「value」,能夠對它進行加密。把 「Value」改成「EncryptedValue」,而後把錄製到的值改成加密後的值。請參考web_submit_form中相關的內容。

全部的Web虛擬用戶,運行在HTTP模式下的WAP用戶,運行在WSP回放模式下的WAP用戶均可以使用本函數。

例子
下面的例子中,web_submit_data函數使用POST方法提交了一個表單。

web_submit_data("default.aspx",

"Action=http://lazarus/flightnet/default.aspx",

"Method=POST",

"TargetFrame=",

"RecContentType=text/html",

"Referer=http://lazarus/flightnet/",

"Snapshot=t7.inf",

"Mode=HTML",

ITEMDATA,

"Name=grpType", "Value=radRoundtrip", ENDITEM,

"Name=lstDepartingCity", "Value=DEN", ENDITEM,

"Name=lstDestinationCity", "Value=LAX", ENDITEM,

"Name=txtDepartureDate", "Value=8/19/2003", ENDITEM,

"Name=txtReturnDate", "Value=8/19/2003", ENDITEM,

"Name=txtQuantity", "Value=1", ENDITEM,

"Name=radClass", "Value=1", ENDITEM,

"Name=radSeat", "Value=1", ENDITEM,

"Name=btnAvailableFlights", "Value=Next >", ENDITEM,

LAST);

下面的例子, web_submit_data函數使用POST方法提交了2個文件。

web_submit_data("Attachments",

"Action=http://barton.cottage@.Devonshire.uk/Attachments?YY=45434",

"Method=POST",

"EncType=multipart/form-data",

"TargetFrame=",

"RecContentType=text/html",

"Referer=http:///barton.cottage@.Devonshire.uk/Compose?YY=20435",

"Snapshot=t5.inf",

"Mode=HTML",

ITEMDATA, "Name=userFile0",

"Value=E:\\sense_sensibility\\Elinor.txt",

"File=yes",

"ContentType=text/html", // 覆蓋了文本文件默認的「text/plain」 值。

ENDITEM,

"Name=userFile1",

"Value=E:\\sense_sensibility\\Marianne.jpg",

"File=yes",

ENDITEM,

LAST);

 

Loadrunner經常使用函數詳解(二)

web_custom_request

語法:
Int web_custom_request (const char *RequestName, ,

[EXTRARES, ,] LAST );

返回值
返回LR_PASS(0)表明成功,LR_FAIL(1)表明失敗。

參數:
RequestName:步驟的名稱,VuGen中樹形視圖中顯示的名稱。

List of Attribute:支持的屬性有如下幾種:

1.URL:頁面地址。

2.Method :頁面的提交方式,POST或GET。

3.TargetFrame:包含當前連接或資源的frame的名稱。參見List of Attributes的同名參數。

4.EncType:編碼類型。

5.RecContentType:響應頭的內容類型。參見List of Attributes的同名參數。

6.Referer:參見List of Attributes的同名參數。

7.Body:請求體。參見List of Attributes的同名參數。

8.RAW BODY:參見List of Attributes的同名參數。

9.BodyFilePath:做爲請求體傳送的文件的路徑。它不能與下面的屬性一塊兒使用:Body,或者其餘Body屬性或Raw Body屬性包括BodyBinary,BodyUnicode, RAW_BODY_START或Binary=1。

10.Resource、ResourceByteLimit、Snapshot、Mode:參見List of Attributes的同名參數。

11.ExtraResBaseDir:參見List of Attributes的同名參數。

12.UserAgent:用戶代理,它是一個HTTP頭的名字,用來標識應用程序,一般是瀏覽器,它呈現的是用戶和服務器的交互。

例如:頭信息「User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)」識別的是Window NT下的IE瀏覽器6.0。其餘的User-Agent的值用來描述其餘的瀏覽器,或者非瀏覽器程序。一般,一個應用程序中全部的請求都使用相同的用戶代理,錄製者做爲一個運行時參數來指定(Run-Time Setting—Browser Emulation—User Agent)。無論怎麼說,即便是在一個簡單的瀏覽器進程中,仍有可能會用到直接與服務器交互的非瀏覽器組件(例如ActiveX控件),一般他們有着不一樣於瀏覽器的用戶代理屬性。指定「UserAgent」表示這是一個非瀏覽器的請求。指定的字符串被HTTP頭「User-Agent:」 使用,在某些狀況下,它同時會影響回放腳本時的行爲。例如,不使用瀏覽器緩存,假設指定的URL屬於資源等等。

LoadRunner自己不檢查指定的字符串與瀏覽器自己的值是否相同。

13.Binary:「Binary=1」表示頁面請求體中的每個以\\x##形式出現的值(在這裏「##」表明2個十六進制數字),都會被替換爲單字節的十六進制的值。

若是「Binary=0」(默認值),全部的字符序列只是按照字面的值傳遞。

須要注意雙斜槓的用法。在C編譯器中雙斜槓被解釋爲單斜槓。若是不須要零字節,單斜槓能夠在Binary不等於1的狀況下使用(例如,使用\x20代替\\x20)。若是須要零字節,那麼只能使用\\x00且設置 「Binary=1」,\x00在邏輯上會被截斷。

14.ContentEncoding

指定請求體的使用指定的方式(gzip或者deflate)進行編碼(例如,壓縮),相應的「Content-Encoding:」 HTTP頭會和此請求一塊兒發送。這個參數適用於web_custom_request和web_submit_data。

EXTRARES:代表下面的參數將會是List Of Resource Attributes了。

LAST :結尾的標示符。

說明
容許使用任何方法和請求體建立自定義的HTTP請求。默認狀況下,當VuGen沒法使用其餘函數解釋用戶請求時,會生成此函數。

使用Add對話框(在腳本環境下,右擊鼠標,會出現快捷菜單),能夠手工插入此函數。要指定特殊的HTTP頭信息,須要增長web_add_header或者web_add_auto_header函數。

RecContentType:參見List of Attributes的同名參數。

EncType:編碼類型。此參數給出一個內容類型(Content-Type),指定其作爲回放腳本時「Content-Type」請求頭的值,例如 「text/html」。Web_custom_request函數不處理未編碼的請求體。請求體參數將會使用已經指定的編碼方式。所以,若是指定了不匹配HTTP請求體的「EncType」,會引起服務端的錯誤。一般咱們建議不要手動修改錄製時的「EncType」值。

任何對於「EncType」的指定都會覆蓋web_add_[auto_]header函數指定的Content-Type。當指定了 「EncType=」 (空值)時,不會產生「Content-Type」 請求頭。當省略了「EncType」時,任何一個web_add_[auto_]header函數都會起做用。若是既沒有指定EncType也沒有 web_add_[auto_]header函數,且「Method=POST」,且「Method=POST」,「application/x- www-form-urlencoded」會作爲默認值來使用。其餘狀況下,不會產生Content-Type請求頭。

僅僅當Recording Options--Recording --HTML-based script-- Record within the current script step選項被選中時,List of Resource Attributes纔會被插入到代碼中。

全部的Web Vusers ,運行在HTTP模式或者Wireless Session Protocol (WSP) 回放模式下的WAP Vusers都支持web_custom_request函數。

Using Binary Code

可使用下面的格式在web_custom_request 函數的「Body」屬性中加入二進制字符串。

\x[char1][char2]

經過2個字符[char1][char2]來表示十六進制的值。

例如:\x24表示16*2+4=36,它表明「$」符號,\x2B表明的是「+」符號。

若是不足2個字符,也不是有效的十六進制字符,VuGen則會看成ASCII文本處理。因此要注意,對於不足2個字符的十六進制,要在前面補0。例如 「\x2」是無效的十六進制串,須要邊爲「\x02」。

注意二進制的值是以「\\x」 的形式出如今腳本中的,也就是說在「x」 前面有2個反斜槓。這是由C語言的轉義語法決定的。可是,當使用VuGen生成web_custom_request 函數時,只須要輸入一個反斜槓。

若是在web_custom_request 中使用參數化,定義參數時只須要包含一個反斜槓這是因爲參數替換時是不考慮C的語法轉換的。

List of Attributes
FtpAscii:「1」使用ASCII模式處理FTP操做;"0" 使用二進制模式。

TargetFrame: 當前連接或資源所在Frame的名稱。除了Frame的名字,還能夠指定下面的參數:

_BLANK:打開一個空窗口。

_PARENT:把最新更改過的的Frame替換爲它的上級。

_SELF:替換最新更改過的的Frame。

_TOP:替換整個頁面。

RecContentType:錄製腳本時響應頭的內容類型。例如text/html、 application/x-javascript等。當沒有設置Resource屬性時,用它來肯定目標URL是不是可記錄的資源。此屬性包含主要的和次要的資源。最頻繁使用的類型是 text、application、image。次要的類型根據資源不一樣變化不少。例如:"RecContentType=text/html":表示 html文本。"RecContentType=application/msword":表示當前使用的是Msword。

Referer: 當前頁面關聯的頁面。若是已經顯式指定了url的地址,此項能夠省略。

Resource:指示URL是否屬於資源。1 是;0 不是。設置了這個參數後,RecContentType參數被忽略。「Resource=1」,意味着當前操做與所在腳本的成功與否關係不大。在下載資源時若是發生錯誤,是看成警告而不是錯誤來處理的;URL是否被下載受「Run-Time Setting—Browser Emulation--Download non-HTML resources」 這個選項的影響。此操做的響應信息是不作爲HTML來解析的。「Resource=0」,代表此URL是重要的,不受發送請求(RTS)的影響,在須要時也會解析它。

ResourceByteLimit:web頁面下載資源的極限大小。當達到設置的極限後,沒法下載其餘資源。僅僅對須要下載的資源有效。

下載過程:若是總計下載大小小於極限值,則正常開始下載。若是當下載時達到了設置的極限值,資源大小可知(在HTTP響應頭中指定了 Content-Length),這中狀況下,若是隻須要一個緩衝區,那麼下載能夠正常完成。若是須要的不止一個緩衝區,或者資源大小不可知,下載就會中斷同時關閉當前鏈接。

這個特性能夠用來模擬用戶不等待一個頁面下載完成時導航到另外一個頁面的狀況。

ResourceByteLimit 在HTTP模式中沒法使用,在Concurrent Groups(Vuser腳本中的一個區,此區中的全部函數併發執行)區中也沒法使用。僅僅適用於Sockets的回放,WinInet也是不適用的。

Snapshot:快照的文件名,關聯時使用。

Mode:兩種錄製級別HTML、HTTP。

HTML級別:在當前Web界面上錄製直觀的HTML動做。以一步步的web_url、web_link、web_image、web_submit_form來錄製這些動做。VuGen僅僅錄製返回HTML頁面的請求,不處理腳本和應用程序。

HTTP級別:VuGen把全部的請求錄製爲web_url指令,不生成web_link、web_image、web_submit_form這些函數。這種方法更爲靈活,可是生成的腳本不夠直觀。

ExtraResBaseDir(目前僅適用與web_custom_request函數):根URL,放在EXTRARES組裏。它是用來解析相對URL的(譯者加:相似於Windows的相對路徑和絕對路徑)。

URL能夠是絕對路徑(例如http://weather.abc.com/weather/forecast.jsp?locCode=LFPO),也能夠是相對路徑(例如「forecast.jsp?locCode=LFPO」)。

真正的URL的下載是經過絕對路徑進行的,因此相對URL路徑必須使用根路徑URL去解析。例如,使用http://weather.abc.com/weather/作爲根路徑來解析「forecast.jsp?locCode=LFPO」,最後的URL是:http://weather.abc.com/weather/forecast.jsp?locCode=LFPO。若是沒有指定「ExtraResBaseDir」,默認的根URL是主頁面的URL。

Body(目前僅適用與web_custom_request函數):請求體。不一樣的應用中,請求體分別經過Body、BodyBinary或者BodyUnicode參數來傳遞。請求體能夠只使用其中一個參數,也可使用一連串的分開的參數組成多請求體。例如:

web_custom_request(

……

"BodyUnicode=REPRICE"

"BodyBinary=\\x08\\x00\\xCC\\x02\\x00\\x00"

"Body=.\r\n"

"-dxjjtbw/(.tp?eg:ch/6--\r\n",

LAST);

在上面的代碼中,使用了3個參數來劃分請求體,一個是Unicode段,一個是二進制段,最後一個是常規的字符串。最終的請求體是這3個參數按照在函數中的順序鏈接起來的值。

還有一個不多用到的參數,Binary。它也能描述二進制請求體,但只容許函數中只有一個請求體參數。

全部的請求體都是ASCII字符,以null結束。

Body:表示規則的,可打印的字符串。沒法表示空字節。全部的字符都以一個反斜槓表示。注意:在舊的腳本中,能夠看見不可打印的字符在請求體中以16進制方式進行編碼。(例如 「\\x5c」),在這種狀況下,必須使用「Binary=1」來標識。空字節使用"\\00"來表示。相反,新腳本則會把把請求體分開放在不一樣的參數中("Body=...", "BodyBinary=...", Body=...")。

BodyBinary :表示二進制代碼。不可打印的字符在請求體中以16進制方式\\xHH進行編碼。在這裏HH 表示十六進制值。空字節使用"\\00"來表示。

BodyUnicode:美國英語, 特指拉丁 UTF-16LE(little-endian)編碼。這種編碼方式會在在每一個字符末尾附加一個0字節,以便使字符更可讀。可是在VuGen中實際的參數把全部的0字節都去掉的。可是在發送給Web 服務器以前, web_custom_request函數會從新添加0字節的。對於不可打印的字符,使用單反斜槓表示,沒法表示空字節。

注意:若是請求體大於100K,會使用一個變量來代替Body參數。變量是在 lrw_custom_body.h中定義的。

Raw Body(目前僅適用與web_custom_request函數):請求體是做爲指針傳遞的,此指針指向一串數據。二進制的請求體可使用BodyBinary 屬性來發送(或者使用Body 屬性來傳遞,前提是必須設置"Binary=1" )。不管如何,這種方法須要使用轉義字符反斜槓把不可打印的字符轉換爲ASCII字符。爲了能有一種更簡便的表現原始數據的方式,Raw Body屬性應運而生,能夠傳遞指向二進制數據的指針。

使用4個連續的參數集來表示指針,並且必須按照順序排列:

RAW_BODY_START

指向數據緩衝區的指針

(int) 長度

RAW_BODY_END

例子:

char *abc= ...

web_custom_request("StepName",

"URL=http://some.url ",

"Method=POST",

RAW_BODY_START,

"abc",

3,

RAW_BODY_END,

LAST);

在應用中,即便設置了數據的長度爲0,指針也必須有值,不能爲空。

在「Binary=1」時,不能使用上面的語法傳遞原始數據。

數據緩衝區中的數據不能使用參數化。也就時說,緩衝區中的任何參數(例如 "{MyParam}")不能被正確的替代爲相應的值,只會以字面值發送。

List ofResourceAttributes
Web頁面中的非HTML機制產生了資源列表,包含了Javascript, ActiveX, Java applets and Flash所請求的資源。VuGen's 的Recording 選項中,能夠設置把這些資源錄製在當前的操做中(默認是此設置)仍是做爲單獨的步驟來錄製。

支持如下資源:

URL
要加載的web資源的url。

Referer
關聯的url。

ENDITEM
每一個資源的結束標記

相對於把每一個資源都錄製爲單獨的步驟來講,不錄製非HTML元素使腳本更加簡短和可讀,特別是在VuGen的Tree視圖下更爲突出。

當VuGen錄製過程當中發現附加的資源(好比JS)時,會以列表的形式加到附加資源項中。回放腳本時,這些資源文件也是請求的一部分。能夠對一些按規則變化的資源使用關聯。

web_find
語法:
int web_find (const char *StepName, , char *searchstring, LAST );

參數:
一、StepName:步驟名稱,在Tree視圖中出現。

二、Attributes and Specifications list:

支持的屬性有:

Frame:在多Frame的狀況下,定義要查找Frame的範圍。

Expect:定義在什麼狀況下函數檢查成功:找到了指定的搜索標準或者沒有找到。例如說,能夠檢查指定的錯誤信息是否出如今web頁面中。合法的值有2個:found和notfound。默認值是「found」。

Matchcase:指定搜索是否區分大小寫。

Repeat:指定當第一次發現要查找的字符串時,搜索是否繼續。當一個web頁面中包含多個被查找的字符串時,此參數是很是有用的。合法的值有2個:yes,no。默認值是「yes」。

Report:指定在什麼狀況下,VuGen在執行日誌中顯示此函數的檢查結果。合法的值有:success,failure,always。默認值是「always」。

Onfailure:此參數決定在函數檢查失敗後,Vuser是否中斷。參數值是abort。若是指定了Onfailure=abort,當函數檢查失敗時,不論在運行時設置中的error-handling是什麼,腳本都會中斷。

若是沒有指定Onfailure=abort,那麼運行時設置中error-handling將會起做用。

支持的特性有:RightOf, LeftOf (不支持7.x及更高版本)。

RightOf:要查找的字符串右邊的內容。

LeftOf:要查找的字符串左邊的內容。

三、Searchstring:須要查找的字符串,格式爲「What=stringxyz」。此搜索不區分大小寫。

四、LAST:屬性列表結束符。

返回值
整型。 成功時返回LR_PASS(0),失敗時返回LR_FAIL (1)。

說明
此函數的做用是在HTML頁面中查找指定的字符串。

此函數只能在基於HTML錄製的腳本中使用。當指定的HTML請求所有完成之後,開始執行搜索過程,比web_reg_find要慢。

web_find函數在C語言的腳本中已經被web_reg_find所替代,web_reg_find運行速度比較快,並且在HTML- based和URL-based的錄製方式中均可以使用。 在C語言腳本中,web_find是向後兼容的。Java和Visual Basic腳本中再也不支持它。

運行在HTTP模式下的WAP用戶都和運行在WSP回放模式下的WAP用戶都不支持此函數。

web_global_verification
語法:
int web_global_verification (, LAST );

參數:
List of Attributes:

一、Text:此屬性是一個非空的,以NULL結尾的字符串,表示要查找的內容。語法是」Text=string」。還可使用text flags自定義字符串。

二、TextPfx:沒有指定Text的狀況下使用此屬性。要查找的字符串的前綴。語法是」 TextPfx =string」。還可使用text flags自定義字符串。

三、TextSfx:沒有指定Text的狀況下使用此屬性。要查找的字符串的後綴。語法是」 TextSfx =string」。還可使用text flags自定義字符串。

四、Search:可選項,在哪裏查找字符串。可選的值是:Headers,Body,NORESOURCE或All。默認值是NORESOURCE。語法是「Search=value」。

五、Fail:當字符串找不到時的處理選項:Found (默認值)或NotFound。Found表示當找到對應的字符串時發生了錯誤(例如「Error」)。NotFound表示當找不到字符串時發生了錯誤。語法是「Fail=value「。

六、ID:在日誌文件中標識當前函數。

LAST:屬性列表結束符。

注:text flags:/IC表示忽略大小寫;/BIN表示指定的是二進制數據。

返回值
整型。 成功時返回LR_PASS(0),失敗時返回LR_FAIL (1)。

說明
web_global_verification屬於註冊函數,註冊一個在web頁面中搜索文本字符串的請求,與 web_reg_find只在下一個Action函數中執行搜索不一樣的是,它是在以後全部的Action類函數中執行搜索的。能夠搜索頁面的 body,headers,html代碼或者是整個頁面。

在檢測一些應用程序級別(不經過http狀態碼來表現)的錯誤時,web_global_verification是很是有用的。若是要定位經過HTTP狀態碼錶現的錯誤時,使用web_get_int_property。

查找範圍:all:這個HTML頁面;Headers:頁面的頭;body:頁面的體,包含全部的資源但不包含頭;NORESOURCE(默認選項):僅僅包含頁面的體,把包括頭和資源。

若是不知道要查找的精確的文本,或者要查找的多個文本不是徹底相同的,可使用前綴和後綴來表示。這時須要用到TextPfx和TextSfx屬性。這2個屬性必須同時指定,一旦指定了其中一個,就不能指定Text屬性了。

注意:web_global_verification在WAP協議下不能運行。

web_image_check
語法:
int web_image_check(const char *CheckName, , <"Alt=alt"|| "Src=src">, LAST );

參數:
一、CheckName:名稱,在Tree視圖中出現。

二、List of Attributes:

支持的屬性有:Frame(在多Frame的狀況下,定義要查找Frame的範圍)。

支持的選項有:expect, matchcase, repeat, report, onfailure。

Tip:選項跟屬性的區別,大部分選項都只容許設置預約義的值,其餘的值都是無效的。

三、Alt:檢查圖象的ALT標記。不容許空值。

四、Src:檢查圖象的SRC標記。不容許空值。

五、LAST:參數列表結束的指示符。

返回值
整型。

說明
web_image_check檢查指定的圖象是否在HTML頁面中出現。

Alt或者Src二者必須有一個在參數列表中出現。若是兩項都經過,那麼檢查成功。

此函數僅僅支持基於HTML的腳本。

web_reg_add_cookie
語法:
int web_reg_add_cookie(const char * cookie, const char * searchstring, LAST );

參數:
一、Cookie:定義須要增長或修改的Cookie。

Cookie的參數格式爲:=VALUE; (required);domain=DOMAIN_NAME;(required);expires=DATE;path=PATH;(default path is "/");secure。

此參數中的cookie元素和HTTP響應頭中的Set-Cookie是相同的。例如「Session=1234;domain=sanditon.com」,在這裏,「Session」是cookie的名稱。

二、Searchstring:要查找的文本字符串。字符串不能爲空,以null結尾。格式爲「Text=string」。

三、LAST:屬性列表的結束符。

返回值
整型。 成功時返回LR_PASS(0),失敗時返回LR_FAIL (1)。

說明
web_reg_add_cookie是註冊類型的函數。它首先註冊一個搜索文本字符串的請求。檢查動做在後續的Action函數以後進行。若是字符串被找到,就添加到cookie中。

須要注意,儘管web_reg_add_cookie在功能上跟HTTP Set_Cookie頭類似,它們仍是有個明顯的區別。根據HTTP標準,domain屬性在Set-Cookie頭中是可選的。若是沒有指定,默認的domain的值是產生cookie的服務器的host name。當使用web_reg_add_cookie函數時,服務器的hostname對於壓力測試的機器來講是不可用的,因此domain屬性是必選項。

此函數在HTML-based 和URL-based的腳本中均可以使用。(參照錄製選項的錄製標籤頁)。此函數是在服務器內容到達客戶端以前註冊搜索請求的,因此當所請求的內容一到就會執行搜索操做,腳本會比較高性。

web_reg_add_cookie是用戶手動添加的,沒法錄製。

web_reg_find
語法:
int web_reg_find (const char *attribute_list, LAST);

參數:
一、attribute_list:

經過Name=Value對來傳遞參數。例如「Text=string」。Text,TextPfx,TextSfx三個必須有一個出現。其餘的屬性是可選的。

a)Text:要搜索的字符串,字符串必須非空,以NULL結尾。可使用text flags自定義搜索字符串。

b)TextPfx:要搜索的字符串的直接前綴。

c)TextSfx:要搜索的字符串的直接後綴。

d)Search:搜索的範圍。可選的值是:Headers 、Body(在請求體中搜索)、Noresource (僅僅在HTML請求體中搜索,不包括頭和資源)、ALL (在請求體、頭和資源中搜索),默認值是「BODY」。

e)SaveCount:匹配的個數。

f)Fail:設置函數檢查在什麼狀態下失敗。

g)ID:日誌文件中標識此函數的一個字符串。

h)RelFrameId:相關聯的FrameId。注意:此參數在GUI級別的腳本中不受支持。

二、LAST:屬性列表結束的標記符。

返回值
整型。 成功時返回LR_PASS(0),失敗時返回LR_FAIL (1)。

說明
web_reg_find屬於註冊函數,註冊一個在web頁面中搜索文本字符串的請求,在接下來的Action(象web_url)類函數中執行搜索。

經過查找指望的字符是否存在來驗證是否返回了指望的頁面。例如,經過查找「Welcome」來檢查主頁是否徹底打開了。也能夠查找「Error」檢查瀏覽器是否發生錯誤。還可使用此函數註冊一個請求來統計特定字符串出現的次數。

若是檢查失敗,在接下來的Action類的函數中會報告錯誤。此函數僅僅註冊請求,並不執行。函數的返回值只代表註冊是否成功,並不表示檢查的結果。

此函數不只可以查找text,還能查找到圍繞着text的strings。不要同時指定text和前綴後綴。

Fail,處理選項,能夠是「Found或「NotFound」。默認是「NotFound」。

「Fail=Found」 指示當對應的字符找到時,函數檢查失敗。例如,查找單詞「Error」,若是找到了,說名web請求沒有成功,你想把函數檢查設置爲失敗。

「Fail=NotFound」指示當對應的字符找不到時,函數檢查失敗。若是查找的是web請求成功時出現的字符串時,須要使用NotFound。

SaveCount參數指示保存到參數中的匹配的字符串的個數。使用這個屬性,須要指定「SaveCount=param」。檢查操做被執行後,param 的值是null結尾的數字類型的值。

若是指定了SaveCount,且沒有使用Fail參數,檢查不會失敗,不管須要查找的字符串是否找到。經過檢查SaveCount的值肯定字符串是否被找到。若是param是0,說明沒有找到對應的字符串。

若是同時指定了SaveCount和Fail,指定的錯誤處理選項和SaveCount協同工做。 handling option specified works together with the SaveCount. Thus,若是指定了SaveCount且指定了「Fail=NotFound」 ,可是字符串被找到,SaveCount被賦值爲字符串出現的次數,檢查成功。若是字符串找不到,SaveCount被賦值爲0,檢查失敗(注意,參數的 0值只在運行時設置中Continue on error 選中時纔有意義)。

此函數在HTML-based和URL-based的腳本中均可以使用。此函數是在所請求內容到達以前註冊搜索請求的,因此當所請求內容一到達後就會執行搜索,產生的腳本比較高效。

web_concurrent_start
語法:
int web_concurrent_start ( [char * ConcurrentGroupName,] NULL );

參數:
ConcurrentGroupName:可選的,併發組的標識符。

NULL:參數列表結束的標記符。

返回值
整型。返回LR_PASS (0)表示成功,返回LR_FAIL (1)表示失敗。

說明
web_concurrent_start函數是併發組開始的標記。組中全部的函數是併發執行的。併發組的結束 web_concurrent_end 函數。在併發組中,能夠包含的函數有:web_url、web_submit_data、web_custom_request、 web_create_html_param、web_create_html_param_ex、web_reg_save_param、 web_add_header。

在併發組中的函數不是當即執行的。在併發組開始時,全部的函數首先被記錄下來,當併發組結束時,全部的函數併發執行。

全部的Web 用戶,HTTP模式下的WAP用戶持本函數。運行在Wireless Session Protocol(WSP)回放模式下的WAP虛擬用戶,不支持本函數。

web_concurrent_start
語法:
int web_concurrent_end ( reserved );

參數:
reserved:保留的供擴展的字段。

返回值
整型。返回LR_PASS (0)表示成功,返回LR_FAIL (1)表示失敗。

說明
web_concurrent_end,併發組結束的標記。腳本執行時,碰到 web_concurrent_end函數時,開始併發執行全部記錄的函數。

在併發組中的函數不是當即執行的。在併發組開始時,全部的函數首先被記錄下來,當併發組結束時,全部的函數併發執行。

能夠併發執行的函數的個數是有限制的,使用運行時設置-Netword標籤頁的Concurrent Connection來設置。

相關文章
相關標籤/搜索