loadrunner 关联Word下载.docx

上传人:b****3 文档编号:16800610 上传时间:2022-11-26 格式:DOCX 页数:9 大小:22.76KB
下载 相关 举报
loadrunner 关联Word下载.docx_第1页
第1页 / 共9页
loadrunner 关联Word下载.docx_第2页
第2页 / 共9页
loadrunner 关联Word下载.docx_第3页
第3页 / 共9页
loadrunner 关联Word下载.docx_第4页
第4页 / 共9页
loadrunner 关联Word下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

loadrunner 关联Word下载.docx

《loadrunner 关联Word下载.docx》由会员分享,可在线阅读,更多相关《loadrunner 关联Word下载.docx(9页珍藏版)》请在冰豆网上搜索。

loadrunner 关联Word下载.docx

  关联(correlation)会用到下列的函数:

  *web_reg_save_param:

这是最新版,也是最常用来做关联(correlation)的函数。

  语法:

  web_reg_save_param(“ParameterName”,<

listofAttributes>

LAST);

  *web_create_html_param、web_create_html_param_ex:

这二个函数主要是保留作为向前兼容的目的的。

建议使用web_reg_save_param函数。

  详细用法请参考使用手册。

在VuGen中点选【Help】>

【Functionreference】>

【Contexts】>

【WebandWirelessVuserFunctions】>

【CorrelationFunctions】。

  如何找出要关联(correlation)数据

  简单的说,每一次执行时都会变动的值,就有可能需要做关联(correlation)。

  VuGen提供二种方式帮助您找出需要做关联(correlation)的值:

  1.自动关联

  2.手动关联

  自动关联

  VuGen内建自动关联引擎(auto-correlationengine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。

  自动关联提供下列二种机制:

  *RulesCorrelation:

在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。

规则来源有两种:

  o内建(Built-inCorrelation):

  VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。

您可以在【RecordingOptions】>

【InternetProtocol】>

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

  您也可以在【RecordingOptions】>

【Correlation】检视每个关联规则的定义。

  o使用者自订(User-definedRulesCorrelation):

  除了内建的关联规则之外,使用者也可以自订关联规则。

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

  *CorrelationStudio:

有别于RulesCorrelation,CorrelationStudio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,CorrelationStudio才会作用。

CorrelationStudio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。

  RuleCorrelation

  请依照以下步骤使用RuleCorrelation:

  1.启用auto-correlation

  1.点选VuGen的【Tools】>

【RecordingOptions】,开启【RecordingOptions】对话窗口,选取【InternetProtocol】>

【Correlation】,勾选【Enablecorrelationduringrecording】,以启用自动关联。

  2.假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。

  3.或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。

  4.设定当VuGen侦测到符合关联规则的数据时,要如何处理:

  §

【Issueapop-upmessageandletmedecideonline】:

跳出一个讯息对话窗口,询问您是否要建立关联。

【Perform.correlationinsceipt】:

直接自动建立关联

  2.录制脚本

  开始录制脚本,在录制过程中,当VuGen侦测到符合关联规则的数据时,会依照设定建立关联,您会在脚本中看到类似以下的脚本,此为BroadVision应用系统建立关联的例子,在脚本批注部分可以看到关联前的数据为何。

  3.执行脚本验证关联是OK的。

  CorrelationStudio

  当录制的应用系统不属于VuGen预设支持的应用系统时,RuleCorrelation可能既无法发挥作用,这时可以利用CorrelationStudio来做关联。

  CorrelationStudio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。

  使用CorrelationStudio的步骤如下:

  1.录制脚本并执行

  2.执行完毕后,VuGen会跳出下面的【ScanActionforCorrelation】窗口,询问您是否要扫描脚本并建立关联,按下【Yes】按钮。

  3.扫描完后,可以在脚本下方的【CorrelationResults】中看到扫描的结果。

  4.检查一下扫瞄的结果后,选择要做关联的数据,然后按下【Correlate】按钮,一笔一笔做,或是按下【CorrelateAll】让VuGen一次就对所有的数据建立关联。

  注意:

由于CorrelationStudio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【CorrelateAll】。

  5.一般来说,您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。

因为有时前面的关联还没做好之前,将无法执行到后面需要做关联的部份。

  有可能有些需要做关联的动态数据,连CorrelationStudio都无法侦测出来,这时您就需要自行做手动关联了。

  手动关联

  手动关联的执行过程大致如下:

  1.使用相同的业务流程与数据,录制二份脚本

  2.使用WinDiff工具协助找出需要关联的数据

  3.使用web_reg_save_param函数手动建立关联

  4.将脚本中有用到关联的数据,以参数取代

  接下来将详细的说明如何执行每个步骤

  使用相同的业务流程与数据,录制二份脚本

  1.先录制一份脚本并存档。

  2.依照相同的操作步骤与数据录制第二份脚本并存盘。

注意,所有的步骤和输入的数据一定都要一样,这样才能找出由服务器端产生的动态数据。

  有时候会遇到真的无法使用相同的输入数据,那您也要记住您使用的输入数据,到时才能判断是您输入的数据,还是变动的数据。

  使用WinDiff工具协助找出需要关联的数据

  1.在第二份脚本中,点选VuGen的【Tools】>

【ComparewithVuser…】,并选择第一份脚本。

  2.接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。

WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。

(假如没看到红色字体,请点选【Options】>

【View】>

【ShowInlineDifferences】)。

  3.逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。

选取差异的脚本,然后复制。

  在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。

请忽略lr_thik_time的差异部份,因为lr_thik_time是用来模拟每个步骤之间使用者思考延迟的时间。

  4.接着要在RecordingLog(单一protocol)或是GenerationLog(多重protocol)中找这个值。

将鼠标光标点到RecordingLog的第一行开头,按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在RecordingLog第一次出现的位置。

  结果会有二种:

  o在RecordingLog中找不到要找的数据,这时请先确认您找对了脚本,毕竟现在开启了二个几乎一样的脚本,很容易弄错。

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

首先可以先检查数据的标头,从标头的Receivingresponse可以知道数据是从服务器端传送到client端的。

假如此数据第一次出现是在Sendingrequest中,则表示此数据是由client端产生,不需要做关联,但是有可能需要做参数化(parameterized)。

  您要找的标头格式如下:

  ***[tid=b9Action12]Receivingresponsefromhostastra.merc-:

80(25/11/200212:

04:

00)

  5.现在您已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联。

  使用web_reg_save_param函数手动建立关联

  在找到是由服务器所产生的动态数据之后,接下来要做的就是找出适当的位置,使用web_reg_save_param函数,将这个动态数据撷取到某个参数中。

  1.要在哪里使用web_reg_save_param函数?

  在之前的步骤,我们已经在ExecutionLog找到可能需要关联的动态数据。

在ExecutionLog中选取动态数据前的文字然后复制,我们将会利用这段文字,来帮助我们找出要关联的动态数据。

  不过在这之前我们要先找出使用web_reg_save_param函数的正确位置,所以我们要再重新执行一遍脚本,而且这次会开启所有的Log。

  1.在VuGen中点选【Vuser】>

【Run-TimeSettings】。

  2.点选【General】>

【Log】。

  3.勾选【Enablelogging】、【Alwayssendsmessages】、【Extendedlog】,以及【Extendedlog】下的所有选项。

  4.按下【OK】就可以执行脚本了。

  执行完脚本之后,在ExecutionLog中搜寻刚刚复制的字符串。

找到字符串后,在字符串前面会有A.tion1.c(7),这个7就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第7行。

  在脚本的第7行前插入一行空白行,然后输入

  web_reg_save_param(“UserSession”,

  “UserSession”这个“UserSession”就是到时要使用的参数名称,建议给个有意义的名字。

到这里整个web_reg_save_param函数还没完成。

  2.找出web_reg_save_param中要用到的边界

  web_reg_save_param函数主要是透过动态数据的前面和后面的固定字符串,来辨识要撷取的动态数据的,所以我们还需要找出动态数据的边界字符串。

  找出左边界字符串

  再回到ExecutionLog中,选取动态数据前的字符串并且复制它。

  这时会有个问题,到底要选取多少字符串才足以唯一识别要找的动态数据呢?

建议是越多越好,但是尽量不要包含到特殊字符。

  在这边我们选取「inputtype=hiddenname=userSessionvalue=」字符串。

选好之后,还要再确认一次这段字符串真的是可以唯一识别的,所以我们在ExecutionLog中透过Ctrl+F的搜寻,找找看这段字符串是否可以找到要找的动态数据。

假如找不到,web_reg_save_param函数还有个ORD参数可以使用,ORD参数可以设定出现在第几次的字符串才是要找的字符串。

  将这个边界字符串加到未完成的web_reg_save_param函数中:

  web_reg_save_param(“UserSession”,“LB=inputtype=hiddenname=userSessionvalue=”,

  找出右边界字符串

  接下来要找出动态数据的右边界字符串,这个字符串就比较好找了,从动态数据的最后一个字符开始,通常就是我们要找的右边界字符串了。

  以这个例子来看,就是「>

」,所以再把右边界字符串加入,web_reg_save_param函数中,这时web_reg_save_param函数已经快完成了。

最后再加上「LAST);

」就完成整个web_reg_save_param函数了。

  web_reg_save_param(“UserSession”,“LB=inputtype=hiddenname=userSessionvalue=”,“RB=>

”,LAST);

  将脚本中有用到关联的数据,以参数取代

  当使用web_reg_save_param建立参数后,接下来就是用“UserSession”参数去取代脚本中写死的(hard-coded)资料。

  范例:

  将

  “Name=userSession”,“Value=75893.0884568651DQADHfApHDHfcDtccpfAttcf”,ENDITEM,

  换成

  “Name=userSession”,“Value={UserSession}”,ENDITEM,

  到这里您已经完成了一个关联了,接下来就是执行脚本,是否能成功运行,假如还是有问题,就要检查看看是否还需要再做另一个关联。

  关于web_reg_save_param函数

  对于关联(correlation)来说,web_reg_save_param是最重要的一个函数,其功能是在下载的网页内容中,透过设定的边界字符串,找出特定的数据并将其储存在一个参数中,以供后续脚本使用。

  接下来将针对web_reg_save_param做比较详细的说明。

  Serviceandregistrationtypefunction

  web_reg_save_param是一个Servicefunction。

servicefunction主要是用来完成一些特殊的工作的,如关联、设定proxy、提供认证信息等,当其作用时,不会对网页的内容做任何的修改。

  web_reg_save_param同时也是一个registrationtypefunction(只要函数名称中包含_reg_的字眼,表示其为registrationtypefunction)。

registrationtypefunction意味着其真正作用的时机是在下一个actionfunction完成时执行的。

举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,则web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param找寻要做关联的动态数据并建立参数。

  所以要记住一点,要使用registrationtypefunction时,要注意其放置的位置必须在要作用的actionfunction之前。

  语法

  intweb_reg_save_param(constchar*ParamName,<

listofAttributes>

LAST);

  参数说明

  ParamName:

存放动态数据的参数名称

  listofAttributes:

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

属性值不分大小写,例如Search=all。

以下将详细说明每个属性值的意义:

  *Notfound:

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

  oNotfound=error:

当找不到动态数据时,发出一个错误讯息。

假如没设定此属性,此为LoadRunner的默认值。

  oNotfound=warning:

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

在对角本除错时,可以使用此属性值。

  *LB:

动态数据的左边界字符串。

此属性质是必须要有的,而且区分大小写。

  *RB:

动态数据的右边界字符串。

  *RelFrameID:

相对于URL而言,欲搜寻的网页的Frame。

此属性质可以是All或是数字,而且可有可无。

  *Search:

搜寻的范围。

可以是Headers(只搜寻headers)、Body(只搜寻body部分,不搜寻header)、Noresource(只搜寻body部分,不搜寻header与resource)或是All(搜寻全部范围,此为默认值)。

此属性质可有可无。

  *ORD:

指明从第几次出现的左边界开始才是要撷取的数据。

此属性质可有可无,默认值是1。

假如值为All,则所有找到符合的数据会储存在数组中。

  *SaveOffset:

当找到符合的动态数据时,从第几个字符开始才开始储存到参数中。

此属性质不可为负数,其默认值为0。

  *Convert:

可能的值有二种:

  oHTML_TO_URL:

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

  oHTML_TO_TEXT:

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

  *SaveLen:

从offect开始算起,到指定的长度内的字符串,才储存到参数中。

此参数可有可无,默认值是-1,表示储存到结尾整个字符串。

  范例

  web_reg_save_param("

A"

"

LB/ic=<

ahref="

RB='

>

"

Ord=All"

nner会搜寻网页中所有以「<

ahref=」开头,且以「’>

」结束,当中包含的字符串,并且储存在「A」参数中。

  TipsandTricks

  以下提供一些关联的常见问题:

  *如何打印出参数值?

  lr_output_message这二个函数来做到。

例如:

  lr_output_message(“ValueCaptured=%s”,lr_eval_string(“{ParameterName}”));

  lr_eval_string与lr_output_message函数的使用说明请参考LoadRunnerOnlineFunctionReference。

  *在脚本的data目录下找不到路制时的快照(snapshot)

  造成在脚本的data目录下找不到路制时的快照(snapshot)的可能原因如下:

  o脚本是由VuGen6.02或更早的版本所录制的

  o汇入的Action不会包含快照(snapshot)的档案

  o脚本是储存在只读的目录下,早成VuGen无法储存执行时撷取的快照(snapshot)

  o某些步骤并不会产生快照(snapshot),如浏览某个资源

  o快照(snapshot)功能被取消

  【Tools】>

【Generaloptions】>

【Correlation】tab>

【Savecorrelationinformationduringreplay】

  *开启WinDiff时出现「Filenolongeravailable」的错误讯息

  WinDiff这个工具有些限制,无法开启包含空格符的目录或是脚本,所以建议命名时不要使用空格符,并且尽可

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1