LR关联及web_reg_save_param方法浅析

14 篇文章 0 订阅

loadrunner关联及web_reg_save_param方法浅析

一、什么是关联
关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。也是把脚本中某些写死的数据,转变成动态的数据。
什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。例如:
1.登录字符串。带有会话 ID 或时间戳等动态数据的登录字符串。
2.日期/时间戳。使用日期或时间戳或者其他用户凭据的任意字符串。
3.常见前缀。后跟字符串的常见前缀,如 SessionID 或 CustomerID
二、web_reg_save_param函数说明
语法:
int web_reg_save_param(const char *ParamName, , 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 : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。
o ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。
o SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。
o SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。
三、实例解析
例1:
在这里插入图片描述
如图所示,不输入查询条件,直接点击【查询】按钮。生成的数据提交脚本如下:
在这里插入图片描述
该value值为请求的数据总数,该值是动态变化的。为了正确的发送请求并得到正确的结果,需要对该值进行关联。
在Generation Log中搜索“totalItem”,如图所示,从而可以确定该value值的左右边界。
在这里插入图片描述
在脚本的请求前插入web_reg_save_param方法,并在提交数据请求的时候使用{count}来替代录制时实际的值。如下图:
在这里插入图片描述
打开扩展日志,运行脚本,可以看到正确的关联出了结果。
在这里插入图片描述
例2:
上面实例是使用web_reg_save_param的ORD=1,只是取第1次出现的左边界子串的匹配项为需要的内容,下面例子使用web_reg_save_param的ORD=ALL,将匹配到的内容保存到数组中。
根据消息列表中的记录数来进行关联(只是为了演示,分页不考虑),跟踪Generation Log可以看到,一条记录的内容会包含5列内容。如下图:
在这里插入图片描述
从上图中可以确定其左右边界,在脚本的请求前插入web_reg_save_param方法,并在提交数据请求的时候使用arrSize/5来替代录制时实际的值。如下图:
在这里插入图片描述
其中lr_paramarr_len方法用于取出数字长度,lr_paramarr_idx方法用于取数组指定下标的值。打开扩展日志,运行脚本,可以看到正确的关联出了结果。
在这里插入图片描述
专注于自动化、性能研究,博客为原创,转载请注明文章来源于:http://www.cnblogs.com/Automation_software/ 只求在IT界有一个清闲的世界让我静心的去专研,不求功名利禄,只为心中的那份成就感及自我成长、自我实现的快感。

web_reg_save_param_regexp函数是LoadRunner中的一个函数,主要用于在一个HTTP请求中,从响应中提取出符合正则表达式的数据,并将其保存到一个参数中,方便后续的使用。 该函数的语法如下: ``` web_reg_save_param_regexp( "ParamName=parameter_name", "RegExp=regular_expression", "Ordinal=occurrence_number", "Group=group_number", LAST ); ``` 其中各个参数的含义如下: - `ParamName`: 参数名,用于保存从响应中提取出来的数据。需要使用该参数时,使用 `{parameter_name}` 的形式进行引用。 - `RegExp`: 正则表达式,用于匹配响应中的数据。 - `Ordinal`: 匹配数据在响应中的出现次数,从左到右计数。如果不指定,默认为第1次出现。 - `Group`: 匹配数据在正则表达式中的分组,从左到右计数。如果不指定,默认为0,即整个正则表达式匹配到的文本。 例如,我们希望从一个响应中提取出所有符合 `pattern\d+` 正则表达式的数据,并保存到 `MyParam` 参数中,可以使用如下代码: ``` web_reg_save_param_regexp( "ParamName=MyParam", "RegExp=pattern\d+", "Ordinal=ALL", LAST ); ``` 在上述代码中,我们使用了 `ALL` 来匹配响应中所有符合正则表达式的数据。 需要注意的是,`web_reg_save_param_regexp` 函数必须在请求发送前执行,否则无法正确从响应中提取数据。另外,如果正则表达式匹配失败,该函数会返回一个错误码,需要进行异常处理。 希望这些信息能够帮助你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值