loadrunner12.55:订票系统脚本录制---手动关联

承接上文的自动关联相关内容,本节介绍一下手动关联的相关内容:

1、相同的业务流程与数据录制二份脚本

2、选用文本对比工具将两份脚本进行对比,可以采用LR自带的比对功能或者notepad++比对功能等

注意:请忽视lr_thik_time思考时间、位置数据及inf驱动程序文件名称序号等数据,定位到本质差异数据。

3、确定脚本中有差异的地方是否需要关联,复制本质差异数据或者脚本至Output的搜索窗口,选择Code generation日志内容进行搜索,即可定位到该内容所在位置,并确认其是否位于响应部分(即属于服务器返回的内容),确认方法为查看该内容是否所属代码的标头,从标头的Response Body可以知道数据是从服务器端传送到client端的。若出现是在Request Header中,则表示此数据是由client端产生,不需要做关联,但是有可能需要做参数化(parameterized)。

4、确定关联函数的插入位置,我们已经定位到差异内容所在响应内容,需要据此判断该响应属于哪个请求产生的,确定好请求位置后,将关联函数插入到该请求的前面即可。

首先打开扩展日志功能,能够记录往来报文信息,进一步确定请求位置;

其次,回放脚本,复制差异值所在行的其他脚本内容(而不是动态值本身)在Replay日志中查找,例如搜索userSession,定位到请求所在位置为

ManualCorrelation1.c(4):     <input type="hidden" name="userSession" value="131004.450627785zHDiftVptcQVzzzHtAtDVpctifHf"/>,双击该行内容,即可定位到请求所在位置。 

5、插入关联函数web_reg_save_param(),可通过loadrunner的操作指引插入或者直接手动输入该函数都可以,该函数介绍如下:

在这里我们只介绍几个常用参数的含义
  语法: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。属性值不分大小写
  LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。
  RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。
  Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。

通过上文我们定位到差异值所在行内容为“<input type="hidden" name="userSession" value="131004.450627785zHDiftVptcQVzzzHtAtDVpctifHf"/> <table border="0"><tr><td>&nbsp;</td> ”,据此可判断如上参数值分别为:

LB=name="userSession" value="

RB="/>

Search=Body

注意:根据语法要求,左右边界里的双引号需要通过进行转义。则如上参数变为:

LB=name="userSession" value="

RB="/>

Search=Body

  • 可直接手动输入该函数如下所示:

     web_reg_save_param("userSession",
        "LB=name="userSession" value="",
        "RB="/>",
        "Search=Body",
        LAST);

  • 或者通过loadrunner操作指引插入该关联函数,操作如下:

 

6、将脚本中有用到关联的数据,用参数代替;

在脚本中选中差异值,右键>Replace with a Parameter>Create New Parameter将参数名改为userSession即可。

 

7、验证关联的正确性
  回放脚本,验证关联的正确性。回放成功,关联成功。

原文地址:https://www.cnblogs.com/apple2016/p/14605675.html