loadrunner Web_类函数之web_reg_save_param_ex()

web_reg_save_param_ex()--常用函数

该函数注册将位于指定边界之间的动态数据保存到参数的请求。

intweb_reg_save_param_ex(“ParamName = <output parameter name>”,[LB [/ IC][BIN] = <value>,] [RB [/ IC] [BIN] = <value>,] <属性列表>搜索过滤器>,LAST);

 

 参数说明:

ParamName:要创建的参数的名称。

LB:动态数据的左边界。参见左边界。

RB:动态数据的右边界请参见右边界。

List ofAttributes::有关每个属性的详细信息,请参阅保存参数注册函数的属性。

属性值字符串(例如,“NotFound =warning”)不区分大小写。

请参阅限制。

SEARCH FILTERS:搜索过滤器,指定缓冲区中搜索数据的部分。请参见“保存参数注册函数的搜索过滤器”

LAST:指示参数列表结束的标记。

 

web_reg_save_param_ex函数是用于在服务器响应中查找动态数据的服务函数。一般来说,找到的数据用于coorelation。

 

Left Boundary

如果不指定LB值,或者将该值设置为空字符串,则web_reg_save_param_ex使用数据的开头作为边界。保存从开始到右边界的所有字符。有关指定边界的更多详细信息,请参阅“边界参数”部分。

LB参数可以采用边界限定符。

 

Right Boundary

参数或动态数据的右边界。如果不指定RB值,或者将该值设置为空字符串,web_reg_save_param_ex将保存从左边界到数据结尾的所有字符。有关指定边界的更多详细信息,请参阅“边界参数”部分。

 

RB参数可以使用边界限定符。

 

BoundaryQualifiers

web_reg_save_param_ex的LB和LR参数可以采用以下限定符:

/ IC - 不区分大小写。即使边界值的情况与缓冲区中的字符串中的情况不同,边界也匹配。

/ BIN - 值是转义的二进制代码。请参阅输入二进制代码。

 

在版本11.00中,支持/ RE限定符。此支持已停止,因为更完整的正则表达式功能现在由web_reg_save_param_regexp提供。

 

Restrictions(限制)

如果指定了DFES参数并且未指定Scope参数,那么搜索范围是Body(而不是默认值)。

如果同时指定了DFES和Scope参数,并且Scope设置为ALL,则忽略DFES参数。

如果指定了HeaderNames参数并且Scope不是Headers,则会忽略HeaderNames参数。

如果指定了RelFrameID = ALL参数,则Ordinal参数必须为ommited或设置为ALL。

web_reg_save_param_ex等待完成整个下载。不要在之前的web_reg_cross_step_download呼叫中指定的网址上使用它。

有关DFES参数的更多信息,请参阅保存参数注册函数的属性。

有关HeaderNames和Scope参数的更多信息,请参阅保存参数注册函数的搜索过滤器

有关RelFrameID参数的更多信息,请参阅保存参数注册函数和RelFrameID属性的搜索过滤器。

 

一般信息:

web_reg_save_param_ex是注册类型函数。它注册在服务器响应中查找和动态数据的请求。要保存的数据在指定的左边界和右边界之间。仅在执行下一个操作函数(如web_url)之后才执行操作。

找到的动态数据保存到参数。在使用动态数据的随后函数调用中,在大括号(例如,“{param1}”)中引入参数名称。

由web_reg_save_param_ex注册的请求查找指定边界之间的数据(但不包括),并保存从左边界之后的字节开始并在右边界之前的字节结束的信息。

如果希望字符串周围有前导和尾随空格,并且您不想在参数中使用它们,请在左边界的末尾和右边界的开始处添加一个空格。例如,如果网页包含字符串“您想在哪里和什么时间旅行?”,则呼叫:

web_reg_save_param_ex(“When_Txt”,“LB = Whereand”,“RB = do”

        LAST);

 

在“和”之后有一个空格,并且在“do”之前,将导致“when”作为When_Txt的值。然而,

web_reg_save_param_ex(“When_Txt”,“LB = Whereand”,“RB = do”

        LAST);

 

没有空格,将导致值“when”。

不支持嵌入边界字符。web_reg_save_param_ex对最近的左边界之后的下一个事件进行简单搜索。例如,如果您已将左边界定义为字符“{`和右边界作为字符”}“,那么将保存以下缓冲区c:

          {a{b {c}

已定位左边界和右边界。因为不支持嵌入边界,所以`}'匹配最近的`{`出现在c之前。 ORD属性为1.只有一个匹配实例。

web_reg_save_param_ex函数还支持数组类型参数。当指定Ordinal = All时,匹配的所有出现都保存在数组中。数组的每个元素由ParamName_index表示。

请参见参数数组示例。

在以下示例中,参数名称为A:

web_reg_save_param_ex(“A”,“LB / ic =<a href=", "RB=\'>”,“Ordinal = All”,LAST);

第一个匹配保存为A_1,第二个匹配保存为A_2,依此类推。您可以使用以下术语检索匹配的总数:ParamName_count。例如,要检索保存到参数数组的匹配总数,请使用:

TotalNumberOfMatches= atoi(lr_eval_string(“{A_count}”));

 

下表指示如何使用边界参数来保存参数字符串的部分:

 

保存到参数的字符串部分

LB

RB

The entire string

empty

empty

From the last LB to the RB

boundary

boundary

From the beginning of a string until the first right boundary

empty

boundary

From the last left boundary until the end

boundary

empty

 

如果任一边界是empy,则不要指定Ordinal属性。

web_reg_save_param_ex替换已弃用的web_reg_save_param。web_reg_save_param具有用于从HTML格式更改为URL或文本格式的CONVERT属性。此属性不适用于web_reg_save_param_ex。如果需要该功能,请在由web_reg_save_param_ex保存参数后使用web_convert_param设置参数的格式。

web_reg_save_param_ex不会被记录。 您可以将其手动添加到脚本。

所有Web脚本都支持web_reg_save_param_ex。

 

示例:web_reg_save_param_ex

此示例显示使用web_reg_save_param_ex保存响应正文中LL和RR之间的所有字符串。

Action()

{

char arrayParamName[50];

int elemCnt;

int x;

lr_save_string( "HTTP%2F1%2E1%20301%20Moved%20Permanently%0A%0D"

"Content%2DType%3A%20text%2Fhtml%0A%0D"

"Date%3A%20Sun%2C%2014%20Feb%202010%2011%3A15%3A34%20GMT%0A%0D"

"%0A%0D"

"aaLLb%20bLLc%20%2E%2ecRRddRReeRRffLLggsadfsdfsdfRRhhRRiiLLj%20%2d%2DjRRkkLLmmLLnnRRoooRRpppLLqqq%0A%0D",

    "inParam" );

web_reg_save_param_ex(

    "ParamName=newParam",

    "LB/IC=ll",

    "RB/IC=RR",

    "Ordinal=all",

    "SaveLen=-1",

    "DFEs=UrlEncoding",

    SEARCH_FILTERS,

        "Scope=body",

LAST);

web_submit_data("echo.asp_2",

    "Action=http://localhost/cgi-bin/echo.asp",

    "Method=POST",

    "TargetFrame=",

    "RecContentType=text/html",

    "Referer=http://localhost/cgi_examples/echo_asp.html",

    "Snapshot=t4.inf",

    "Mode=HTML",

    ITEMDATA,

        "Name=code","Value={inParam}", ENDITEM,

    LAST);

/*     Getting individual elements from a parameterarray.

    Since the parameter created by web_reg_save_param_ex

    is called "newParam", the number ofelements

    is saved in parameter "newParam_count".

    The array elements are parameters"newParam_1",

    "newParam_2", ... "newParam_n".

*/

elemCnt = atoi(lr_eval_string("{newParam_count}"));

lr_output_message("Number of items found = %d",elemCnt);

for (x=1;x<=elemCnt;x++) {

    sprintf(arrayParamName, "{newParam_%d}",x);

    lr_output_message ("%s: %s",
        arrayParamName,
        lr_eval_string(arrayParamName));

}

    return 0;

}

Action.c(41): Number of items found = 4

Action.c(45): {newParam_1}: c ..c

Action.c(45): {newParam_2}: ggsadfsdfsdf

Action.c(45): {newParam_3}: j --j

Action.c(45): {newParam_4}: nn

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值