Loadrunner11关联.docx

上传人:b****1 文档编号:10213744 上传时间:2023-05-24 格式:DOCX 页数:15 大小:572.87KB
下载 相关 举报
Loadrunner11关联.docx_第1页
第1页 / 共15页
Loadrunner11关联.docx_第2页
第2页 / 共15页
Loadrunner11关联.docx_第3页
第3页 / 共15页
Loadrunner11关联.docx_第4页
第4页 / 共15页
Loadrunner11关联.docx_第5页
第5页 / 共15页
Loadrunner11关联.docx_第6页
第6页 / 共15页
Loadrunner11关联.docx_第7页
第7页 / 共15页
Loadrunner11关联.docx_第8页
第8页 / 共15页
Loadrunner11关联.docx_第9页
第9页 / 共15页
Loadrunner11关联.docx_第10页
第10页 / 共15页
Loadrunner11关联.docx_第11页
第11页 / 共15页
Loadrunner11关联.docx_第12页
第12页 / 共15页
Loadrunner11关联.docx_第13页
第13页 / 共15页
Loadrunner11关联.docx_第14页
第14页 / 共15页
Loadrunner11关联.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Loadrunner11关联.docx

《Loadrunner11关联.docx》由会员分享,可在线阅读,更多相关《Loadrunner11关联.docx(15页珍藏版)》请在冰点文库上搜索。

Loadrunner11关联.docx

Loadrunner11关联

一、什么是关联

关联(correlation):

脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。

也是把脚本中某些写死的数据,转变成动态的数据。

什么内容需要关联:

当脚本中的数据每次回放都发生变化时,并且这个动态数据在后面的请求中需要发送给服务器,那么这个内容需要通过关联来询问服务器,获得该数据的变化结果。

例如:

 1.登录字符串。

带有会话ID或时间戳等动态数据的登录字符串。

  2.日期/时间戳。

使用日期或时间戳或者其他用户凭据的任意字符串。

  3.常见前缀。

后跟字符串的常见前缀,如SessionID或CustomerID

关联分为:

自动关联、边录边关联、手动关联

 二、自动关联---CorrelationStudio

1.CorrelationStudio:

是执行脚本后才会建立关联。

录制完脚本后须被执行过一次,CorrelationStudio才会尝试找出录制与执行时,服务器响应内容差异部分,以找出需要关联的数据,并建立关联。

缺点是无法对特殊规则动态进行关联。

以录制注册XX用户脚本为例:

1.录制脚本并回放脚本。

2.按ctrl+f8扫描脚本并建立关联,扫描完后,可以在脚本下方的【CorrelationResults】中看到扫描的结果,可以选择【AllAction】、【Currentacton】或者【currentStepOnly】选项,点击【Correlate】按钮进行关联。

3.关联成功后切换到ScriptView视图,可以看到脚本多了关联函数web_reg_save_param_ex(),而关联出来的内容分别被保存到CorrelationParameter_1、CorrelationParameter_2、CorrelationParameter_3参数中去。

如图:

4.web_reg_save_param_ex()函数可以代替web_reg_save_param()函数。

此函数搜索Web步骤中左边界后为字符串和右边界的服务器响应,并将字符串保存到函数实参中指定的形参。

         

web_reg_save_param_ex("ParamName=CorrelationParameter_1",

                  "LB=value=\"",

                   "RB=\">\r\n

                   SEARCH_FILTERS,

                   "Scope=Body",

                   "RequestUrl=*/

                    LAST);

IC和/BIN在web_reg_save_param都是有的

/RE是web_reg_save_param_ex才有,意思是左右边界值可以使用正则表达式。

"RB/RE=\"name=\"chkItem_......\"\r\n   中的......就表示任意字符了。

Scope表示搜索的范围

RequestUrl表示指定的请求(如点击一个按钮,可能有几个请求链接组成的,通过这个属性可以缩小范围)

三、边录边关联---RulesCorrelation

RulesCorrelation

启用系统默认提供的自动关联设置,在录制过程中VuGen会根据已经制定的规则,自动找出要关联的值。

内建关联(Bulit–in Correlation)

针对常用的一些应用系统,如oracle、peopleSoft、Siebel等,内建关联规则,这些应用系统可能会有一种以上的关联规则。

在【RecordingOptions】>【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。

如图:

四、用户自定义关联规则(User-definedRulesCorrelation)

在【RecordingOptions】>【Correlation】建立新的关联规则。

点击【newApplication】按钮建立关联,然后在这个应用下点击“Newrule”按钮添加对应的关联规则。

以录制登录Webtours订票系统为例:

第一步,在RecordingOptions-Correlation中建立关联规则,单击NewApplication按钮,新建一个叫做lrwebtours的应用,然后在这个规则上单击NewRule按钮新建一个规则,名叫usersessionid,为该规则填写左右规则,左边界为userSessionValue=,右边界为>,确定后保存。

如下图:

2.开始录制webtours订票系统登录业务。

3.录制完订票系统登录业务脚本后,可以发现系统已经自动按照规则生成了关联函数,运行脚本直接通过。

手动关联是关联应用的最有效手段,通过函数web_reg_save_param()进行关联。

web_reg_save_param()将想要的字符串保存到一个参数中。

web_reg_save_param函数主要根据需要做关联的动态数据前面和后面固定字符串来识别、提取动态数据,所以在关联时需要找出动态数据的左、右边界字符串。

Web_reg_save_param函数格式:

web_reg_save_param(constchar*ParamName,,LAST

参数名

参数说明

ParamName

存放动态数据的参数名称

ListofArrtributes

其它属性,包含Notfound、LB、RB、RelFrameID、Search、ORD、Saveoffset、Convert以及SaveLen

NOTfound

指定当找不到要找的动态数据时该怎么处置。

notfound=error:

当找不到动态数据时,发出一个错误信息,此为loadrunner的默认值。

notfound=warning:

当找到动态数据时,不发出错误信息,只发出警告,脚本也会继续执行下去不会中断。

LB

动态数据的左边界字符串,该参数为必选参数,而且区分大小写。

要忽略大小写,请在边界之后添加“/IC”。

如果在边界之后指定“/BIN”,则指定为二进制数据

RB

动态数据的右边界字符串,该参数为必选参数,而且区分大小写。

要忽略大小写,请在边界之后添加“/IC”。

如果在边界之后指定“/BIN”,则指定为二进制数据

ORD

此可选参数表示匹配的序号或出现的次数,该参数为必选参数,默认值是1。

如果指定“All”,是将所有找到的动态变量保存到数组中。

Search

搜索的范围,可以是headers(只搜寻页眉)、body(只搜寻正文部分,不搜寻页眉)、Noresource(只搜寻正文部分,不搜寻页眉与resource部分)或是all(搜寻全部范围),该参数为可选参数

RelFrameID

与请求的 URL 相关的 HTML 页的框架结构层次级别。

可以为 ALL 或数字

Saveoffset

设置关联的内容偏移量,从第几位开始进行关联操作。

此属性值不可为负数,默认是0

Convert

可能的值有两种。

HTML_TO_URL:

将HTML-encoded数据转成URL-encoded数据格式。

HTML_TO_TEXT:

将HTML-ecncoded数据转成纯文字数据格式。

Savelength

关联出来的内容所需要保存的长度。

从offset开始算起,到指定长度内的字符串,才储存到参数中,该参数为可选参数,默认值是-1,表示储存到结尾整个字符串。

关联函数的注意事项:

1.关联函数是一个注册函数,必须写在请求前,否则就会提示无法获得关联结果的错误。

2.保存参数最大不能超过256字节,如果超过256字节请使用intweb_set_max_html_param_len(constchar*length)函数扩大参数保存范围。

 例如:

web_set_max_html_param_len(“1024”);//扩大参数最大保存范围为1024字节。

3.如果输入的内容里面有双引号,那么需要通过转义符来进行处理,转义符为\。

Web_reg_save_param(“param”,“LB=\”左边界”,“RB=”,LAST);

4.关联函数的作用一种规则将服务器的返回保存到一个参数中,所以为查看参数的内容,应勾选参数取值的Extendedlog日志的三个选项。

运行脚本查看Replylog日志,会看到蓝色参数值罗列出来”Notify:

savingParameter=“,后面都是被关联到的服务器返回关联值。

5.动态数据需要关联的服务器返回信息一般都保存在HTML正文中。

所以关联函数中设置将searchin=Noresource,也就是只需要关联HTML、XML等资源。

6.修改关联函数:

1.直接在代码上直接修改,2切换到tree模式,双击关联函数进行修改。

7.整个HTTP请求分为两段,一段是开头的HTTP头数据包,叫做header,另外一段就是HTML页面,叫做body。

8.关联函数转义符:

转义符号

说明

\b

Backspace 键

\f

换页

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\’

单引号标记

\’’

双引号标记

\\

反斜杠

\?

文本问号

 

 

 

 

 

关联操作步骤:

第一步:

录制两份相同的业务流程的脚本,输入的数据要相同

第二步:

用winDiff工具,找出两份脚本之间不同之处,确定需要关联的动态数据,在请求返回中找到动态数据的左右边界

第三步:

用web_reg_save_param()函数手动建立关联,将脚本中用到关联的数据参数化,将关联的值提供给后续请求页面使用。

以录制登录Webtours系统为例:

  

1.录制两份相同的登录WebTours网站脚本

2.用WinDiff工具,找出两份脚本之间的不同,也就是需要关联的数据。

(1)用lr打开第二份脚本,依次选择[tools]>[comparewithvuser…]项,在弹出对话框中选择第一份脚本。

(2)用lr调用WinDiff工具,显示两份脚本,WinDiff工具会以一整行黄色标示显示有差异的脚本代码行。

可以看到有三处不一样,第一处是userSession,另外二外是点击按钮时的x,y坐标。

lr_think_time思考时间不同,可以忽略。

如图:

(3)在Generationlog中打开[find]对话框,粘贴userSession的值,查找在Generationlog出现的位置。

如果在GenerationLog中找到了要找的数据,这时要确认是从服务器端传送过来的数据。

如图:

     如果出现在$$$$$$RequestHeaderForTransactionWithId3Ended$$$$$$这个部分,那证明是客户端发出的请求,这里是不需要做关联的

     一般做的关联都是出现在******ResponseHeaderForTransactionWithId7******和******ResponseBodyForTransactionWithId7******中的部分。

3.确认插入关联的位置

关联函数写到发出请求的函数之前,我们将关联函数插入在Webtours登录页面:

4.插入关联函数

(1)通过设置左右边界字符串,找出变化的数据(即需要做关联的数据)并将其储存在一个参数中,以供后续脚本使用。

我们设置登录webtours脚本userSession的左边界为userSessionvalue=,右边界为>,search=body,ord=3,如图:

(2)插入关联函数。

1.右键选择“Insert-NewStep”在弹出的“addstep”对话框的“findfunction”中输入

在“Parametername”中输入关联函数的名称“usersessionid”

在“LeftBoundary”中输入“userSessionvalue=”

在“RightBoundary”中输入“>”

在“Searchin”中选择“body”

在“Instance”输入“3”

点击“ok”即可。

如图:

5.将脚本中有用到关联的数据,用参数代替将原来服务器返回的userSession动态值使用{usersessionid}来替换:

6.验证关联的正确性。

回放脚本,出现vuser_init.c(12):

Registeringweb_reg_save_paramwassuccessful[MsgId:

MMSG-26390]信息说明关联成功,也可以用打印函数lr_log_message把将得内容存入日志用于检查关联是否成功。

如图:

lr_log_message(“getvalue:

%s”,lr_eval_string(“{usersessionid}”));

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2