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}”));
下表指示如何使用边界参数来保存参数字符串的部分:
保存到参数的字符串部分 |
RB |
|
empty |
||
From the last LB to the RB |
boundary |
|
From the beginning of a string until the first right boundary |
empty |
|
From the last left boundary until the end |
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保存响应正文中LL和RR之间的所有字符串。
{
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);
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
loadrunner Web_类函数之web_reg_save_param_ex()相关推荐
- loadrunner Web_类函数之web_set_user()
web_set_user()--常用函数 为Web服务器指定登录字符串.当我们使用RNS服务器或者某些服务器的时候需要我们输入账号密码登录才能给进行访问,那么这个时候就需要用到该函数. intweb_ ...
- loadrunner Lr_类函数之 lr_rendezvous_ex()
lr_rendezvous_ex() 在Vuser脚本中创建会合点. int lr_rendezvous_ex(const char * rendezvous_name); 参数说明: rendezv ...
- loadrunner Lr_类函数之 lr_think_time()
lr_think_time() 在脚本中的命令之间暂停执行(添加思考时间). void lr_think_time(double thinkTime); 参数说明: thinkTime:暂停的长度,以 ...
- 性能测试LoadRunner深入浅出
Da01 一.初步概念 1.功能测试:测试软件产品的功能是否达到要求. 如:ATM取款(在线取款) --- 是否成功 转账成功,表示功能实现了 (一个人) 2.性能测试:测试软件产品的性能是否达到要求 ...
- LoadRunner 技巧之 手动关联与预关联
上一节介绍了关联的原理与自动关联,除了自动关联还有另外两种关联方式:手动关联与 预关联. 手动关联 ...
- Loadrunner压测时,出现的问题汇总
[问题1] Error -27728: Step download timeout (120 seconds) has expired 错误分析:对于HTTP协议,默认的超时时间是120秒(可以在Ru ...
- loadrunner通过使用libmysql.dll完成mysql的测试
[1]需要使用到MySQL的libmysql.dll动态链接库,因此需要安装MySQL:注:本地安装的MySQL最好和MySQL数据库服务器上的版本一致:(本次使用的是MYSQL 5.6) [2]Lo ...
- loadrunner 关联匹配多个值
loadrunner 关联获取从服务器返回相关值,如果需要把所有匹配的值都获取并且把这些值打印出来,怎么做呢? 1.首先要把把所有的匹配值都保存起来,需要在关联函数里面多传递一个参数:"Or ...
- Loadrunner学习笔记(三)
1.场景(Scenario) 场景是一个文件,用于根据性能要求定义在每一个测试会话运行器件发生的事务, 模拟真实环境,用户运行状况 2.如何测试场景的参数:把握一个原则-模拟实际的生成环境. 3.负载 ...
最新文章
- python是一种语言还是一个软件-python和GO语言应该选择哪一个?老男孩教育
- hbase启动报错Permission denied: user=xxx, access=WRITE, inode=“/HBase/MasterProcWALs“:root:supergroup:d
- PHP gd库 验证码
- caffe使用ctrl-c不能保存模型
- lucene6.0 查询语句设置关键字boost值
- 利用Kubernetes名称空间来管理内存和CPU资源(二)
- Mybatis高级应用 延迟加载
- Apache Spark源码走读之22 -- 浅谈mllib中线性回归的算法实现
- MyBatisPlus学习
- AndroidStudio选中代码后,光标自动变粗,自动变成ins模式的解决方法
- 浅谈前端开发过程中使用的代理方法
- 中控指纹仪linux驱动下载,中控uru4500指纹仪驱动
- php 人物换装原理,装备库解析——换装机制,宝石选择原理
- 如何使用智遥工作流为SAP节省License实例
- 周爱民 - 架构师能力模型
- FineReport 爬坑之路
- AtCoder Grand Contest 012 E Camel and Oases 状压dp
- workbook需要引入的包_解决Maven引用POI的依赖,XSSFWorkbook依旧无法使用的问题
- 支付宝微信红包战背后的算盘
- 数电学习(六、时序逻辑电路)(三)