web_reg_save_param函数(转)

一、什么是关联

关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。也是把脚本中某些写死的数据,转变成动态的数据。
什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。例如:
1.登录字符串。带有会话 ID 或时间戳等动态数据的登录字符串。
2.日期/时间戳。使用日期或时间戳或者其他用户凭据的任意字符串。
3.常见前缀。后跟字符串的常见前缀,如 SessionID 或 CustomerID

二、web_reg_save_param函数说明

语法:

int web_reg_save_param(const char *ParamName, <list of Attributes>, 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/

时间: 2024-11-12 05:42:24

web_reg_save_param函数(转)的相关文章

Loadrunner中web_reg_save_param函数的除关联外的使用方法,检查点找不到内容

web_reg_save_param函数主要是使用在关联中,而关联大部分时候loadrunner的自动关联不奏效的时候,才会使用. 而我要说的是这个函数两个不同的使用方法,当然可能有更好的办法,或许我说的也不全对,欢迎来纠正,嘿嘿~~~ 第一种:设置检查点时,可以用来排查为什么检查点失败. 在性能测试测试中,我们必须要设置文本或是图片检查点,来提高我们测试脚本可信度.没有检查点怎么能确认我们的脚本这个请求是正确的呢~~你说是吧~? 但我们经常会有遇到,根据response设置了检查点,但是死活不

loadrunner必用函数web_reg_save_param获取多个符合边界值条件的使用方法

在做loadrunner性能脚本开发时,常常碰见一个需求:符合web_reg_save_param函数中定义的左右边界值的值有多个,而我们的常规写法默认返回的是符合条件的第一个,而有时我们却需要使用后面的值,下面来进行介绍,如何获取多个,并且如何使用这些获取到的值. 首先介绍一般我们经常使用的写法: web_reg_save_param("paramName", "LB=左边界", "RB=右边界", LAST); 这种写法保存到paramNam

LoadRunner函数示例:lr_paramarr_random()

lr_paramarr_random()函数的作用为:从一个参数数组中随机抽取一个值并以字符串形式返回.其使用方式及返回方式如下: char * lr_paramarr_random( const char * paramArrayName); 该函数在某些测试场景下或许比较有用,如随机选择页面中一个下拉框中的值. 本次测试的WEB页面源码如下: 1 <html> 2 <head> 3 </head> 4 <body> 5 <select id=&qu

转:loadrunner关联及web_reg_save_param方法浅析

一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联.也是把脚本中某些写死的数据,转变成动态的数据.什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果.例如:1.登录字

loadrunner关联及web_reg_save_param方法浅析

loadrunner关联及web_reg_save_param方法浅析 一.什么是关联 关联(correlation):脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联.也是把脚本中某些写死的数据,转变成动态的数据. 什么内容需要关联:当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那

loadrunner自学以及问题解答2

QQ群:2423597857 ============================== 46.LR启动controller报错"transaction monitor not available" 1.多是OS系统问题,修复试试或升级 2.或修复LR试试 47.Loadrunnber 报错误:Error -- memory violation : Exception ACCESS_VIOLATION received.的一种情况 Posted on 2011-01-05 12:12

loadrunner提高篇-插入检查点与关联函数

插入检查点   靠LR自动生成的脚本是不够的,很难达到业务要求,因此需要对录制完的脚本进行完善,使其能达到业务模拟的要求 ,这样尽可能地使虚拟用户模拟时更接近用户的实际使用. 在进行压力测试时,经常会有页面间数据传递的操作.如果在测试过程中传递数据的次数逐渐增多,页面就有可能发生传递混乱,或者客户端与服务器端数据传输被中断.传输过程中产生了错误的数据等情况.为了判断数据传递的正确性,LR提供了插入检查点的方法.之前在入门篇的博客中有提到插入检查点的原因,这里就不再细说了,大概提一下,是因为当事务

Loadrunner脚本自动关联和手动关联

关于Loadrunner关联一.什么时候需要关联 1.关联的含义        关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联.        其实关联也属于一同特殊的参数化,只是与一般的参数化有些不同        一般的参数化的参数来源于一个文件.一个定义的table.通过sql写

LoadRunner FAQ2

LR中参数的定义和赋值 1.参数的赋值和取值 lr_save_string("hello world","param"); lr_eval_string("{param}"); 2.变量到参数 int x; char *y; y="hello"; x=10; lr_save_int(x,"param"); lr_save_string(y,"param1"); lr_eval_strin