web_url
语法:
Int Web_url(const char *name, const char * url, <Lists of Attributes>,
[EXTRARES,<Lists of Resource Attributes>,LAST)
返回值
成功时返回LR_PASS (0),失败时返回 LR_FAIL (1)。
参数:
Name:VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称。
url:页面url地址。
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, <List of Attributes>,
[EXTRARES, <List of Resource Attributes>,] LAST );
返回值
成功时返回LR_PASS (0),失败时返回 LR_FAIL (1)。
参数:
StepName:VuGen中树形视图中显示的名称,在自动事务处理中也可以用做事务的名称。
List of Attributes(服务器端和客户端映射的图片):SRC属性是一定会被录制到的,其他的ALT、Frame、TargetFrame、Ordinal则是有的话会被录制到。
1、ALT:描述图象的元素。用鼠标指向图象时,所浮出来的文字提示。
2、SRC:描述图象的元素,可以是图象的文件名. 如: button.gif。也可以使用SRC/SFX来指定图象路径的后缀。所有拥有相同此后缀的字符串都会被匹配到。
3、Frame:录制操作时所在的Frame的名称。
4、TargetFrame:见List of Attributes的同名参数。
5、Ordinal:参见Web_link的同名参数。
List of Attributes(客户端映射的图片):
1、AreaAlt:鼠标单击区域的ALT属性。
2、AreaOrdinal:鼠标单击区域的顺序号。
3、MapName:图象的映射名。
List of Attributes(服务器端映射的图片):尽管点击坐标不属于属性,但还是以属性的格式来使用。
1、Xcoord:点击图象时的X坐标。
2、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, <List of Attributes>,
[EXTRARES, <List of Resource Attributes>,] 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, <List of Attributes>,
<List of Hidden Fields>, ITEMDATA, <List of Data Fields>,
[ EXTRARES, <List of Resource Attributes>,] 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, <List of Attributes>,
ITEMDATA, <List of data>, [ EXTRARES, <List of Resource
Attributes>,] 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);
web_custom_request
语法:
Int web_custom_request (const char *RequestName, <List of Attributes>,
[EXTRARES, <List of Resource Attributes>,]
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 :结尾的标示符。
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= .../* a pointer to the raw data */
web_custom_request("StepName",
"URL=http://some.url ",
"Method=POST",
RAW_BODY_START,
"abc",
3,
RAW_BODY_END,
LAST);
在应用中,即使设置了数据的长度为0,指针也必须有值,不能为空。
在“Binary=1”时,不能使用上面的语法传递原始数据。
数据缓冲区中的数据不能使用参数化。也就时说,缓冲区中的任何参数(例如 "{MyParam}")不能被正确的替代为相应的值,只会以字面值发送。
List of Resource Attributes
Web页面中的非HTML机制产生了资源列表,包含了Javascript, ActiveX, Java applets and
Flash所请求的资源。VuGen's 的Recording 选项中,可以设置把这些资源录制在当前的操作中(默认是此设置)还是作为单独的步骤来录制。
支持以下资源:
URL
要加载的web资源的url。
Referer
关联的url。
ENDITEM
每个资源的结束标记
相对于把每个资源都录制为单独的步骤来说,不录制非HTML元素使脚本更加简短和可读,特别是在VuGen的Tree视图下更为突出。
当VuGen录制过程中发现附加的资源(比如JS)时,会以列表的形式加到附加资源项中。回放脚本时,这些资源文件也是请求的一部分。可以对一些按规则变化的资源使用关联。
|