当前位置: 首页 > news >正文

网站项目建设方案教育+wordpress模板

网站项目建设方案,教育+wordpress模板,四川手机网站,专门做车评的网站如何在脚本中做关联 (Correlation)当录制脚本时#xff0c;VuGen会拦截client端#xff08;浏览器#xff09;与server端#xff08;网站服务器#xff09;之间的对话#xff0c;并且通通记录下来#xff0c;产生脚本。在VuGen的Recording Log中#xff0c;您可以找到浏…如何在脚本中做关联 (Correlation)当录制脚本时VuGen会拦截client端浏览器与server端网站服务器之间的对话并且通通记录下来产生脚本。在VuGen的Recording Log中您可以找到浏览器与服务器之间所有的对话包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于脚本只记录了client端要对server端所说的话而Recording Log则是完整纪录二者的对话。 当执行脚本时您可以把VuGen想象成是一个演员它伪装成浏览器然后根据脚本把当初真的浏览器所说过的话再对网站伺服器重新说一遍VuGen企图骗过服务器让服务器以为它就是当初的浏览器然后把网站内容传送给VuGen。所以纪录在脚本中要跟服务器所说的话完全与当初录制时所说的一样是写死的hard-coded。这样的作法在遇到有些比较聪明的服务器时还是会失效。这时就需要透过「关联correlation」的做法来让VuGen可以再次成功地骗过服务器。何谓关联correlation所谓的关联correlation就是把脚本中某些写死的hard-coded数据转变成是撷取自服务器所送的、动态的、每次都不一样的数据。举一个常见的例子刚刚提到有些比较聪明的服务器这些服务器在每个浏览器第一次跟它要数据时都会在数据中夹带一个唯一的辨识码接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因因为VuGen还是用旧的Session ID向服务器要数据服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID当然就不会传送正确的网页数据给VuGen了。下面的图示说明了这样的情形当录制脚本时浏览器送出网页A的请求服务器将网页A的内容传送给浏览器并且夹带了一个ID123的数据当浏览器再送出网页B的情求时这时就要用到ID123的数据服务器才会认为这是合法的请求并且把网页B的内容送回给浏览器。在执行脚本时会发生什么状况浏览器再送出网页B的请求时用的还是当初录制的ID123的数据而不是用服务器新给的ID456整个脚本的执行就会失败。 要对付这种服务器我们必须想办法找出这个Session ID到底是什么、位于何处然后把它撷取下来放到某个参数中并且取代掉脚本中有用到Session ID的部份这样就可以成功骗过服务器正确地完成整个交易了。哪些错误代表着我应该做关联correlation假如脚本需要关联correlation在还没做之前是不会执行通过的也就是说会有错误讯息发生。不过很不幸地并没有任何特定的错误讯息是和关联correlation有关系的。会出现什么错误讯息与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入但是也有可能直接就显示HTTP 404的错误讯息。要如何做关联correlation关联correlation函数关联correlation会用到下列的函数? web_reg_save_param这是最新版也是最常用来做关联correlation的函数。语法web_reg_save_param ( “Parameter Name” , list of Attributes , LAST );? web_create_html_param、web_create_html_param_ex这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。详细用法请参考使用手册。在VuGen中点选【Help】【Function reference】【Contexts】【Web and Wireless Vuser Functions】【Correlation Functions】。如何找出要关联correlation数据简单的说每一次执行时都会变动的值就有可能需要做关联correlation。VuGen提供二种方式帮助您找出需要做关联correlation的值1. 自动关联2. 手动关联自动关联VuGen内建自动关联引擎auto-correlation engine可以自动找出需要关联的值并且自动使用关联函数建立关联。自动关联提供下列二种机制? Rules Correlation在录制过程中VuGen会根据订定的规则实时自动找出要关联的值。规则来源有两种o 内建Built-in CorrelationVuGen已经针对常用的一些应用系统如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等内建关联规则这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】【Internet Protocol】【Correlation】中启用关联规则则当录制这些应用系统的脚本时VuGen会在脚本中自动建立关联。您也可以在【Recording Options】【Internet Protocol】【Correlation】检视每个关联规则的定义。o 使用者自订User-defined Rules Correlation除了内建的关联规则之外使用者也可以自订关联规则。您可以在【Recording Options】【Internet Protocol】【Correlation】建立新的关联规则。? Correlation Studio有别于Rules CorrelationCorrelation Studio则是在执行脚本后才会建立关联也就是说当录制完脚本后脚本至少须被执行过一次Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时服务器响应内容的差异部分藉以找出需要关联的数据并建立关联。Rule Correlation请依照以下步骤使用Rule Correlation1. 启用auto-correlation1. 点选VuGen的【Tools】【Recording Options】开启【Recording Options】对话窗口选取【Internet Protocol】【Correlation】勾选【Enable correlation during recording】以启用自动关联。2. 假如录制的应用系统属于内建关联规则的系统如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等请勾选相对应的应用系统。3. 或者也可以针对录制的应用系统加入新的关联规则此即为使用者自订的关联规则。4. 设定当VuGen侦测到符合关联规则的数据时要如何处理? 【Issue a pop-up message and let me decide online】跳出一个讯息对话窗口询问您是否要建立关联。? 【Perform correlation in sceipt】直接自动建立关联2. 录制脚本开始录制脚本在录制过程中当VuGen侦测到符合关联规则的数据时会依照设定建立关联您会在脚本中看到类似以下的脚本此为BroadVision应用系统建立关联的例子在脚本批注部分可以看到关联前的数据为何。 3. 执行脚本验证关联是OK的。Correlation Studio当录制的应用系统不属于VuGen预设支持的应用系统时Rule Correlation可能既无法发挥作用这时可以利用Correlation Studio来做关联。Correlation Studio会尝试找出录制时与执行时服务器响应内容的差异部分藉以找出需要关联的数据并建立关联。使用Correlation Studio的步骤如下1. 录制脚本并执行2. 执行完毕后VuGen会跳出下面的【Scan Action for Correlation】窗口询问您是否要扫描脚本并建立关联按下【Yes】按钮。 3. 扫描完后可以在脚本下方的【Correlation Results】中看到扫描的结果。 4. 检查一下扫瞄的结果后选择要做关联的数据然后按下【Correlate】按钮一笔一笔做或是按下【Correlate All】让VuGen一次就对所有的数据建立关联。注意由于Correlation Studio会找出所有有变动的数据但是并不是所有的数据都需要做关联所以不建议您直接用【Correlate All】。5. 一般来说您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。因为有时前面的关联还没做好之前将无法执行到后面需要做关联的部份。有可能有些需要做关联的动态数据连Correlation Studio都无法侦测出来这时您就需要自行做手动关联了。手动关联手动关联的执行过程大致如下1. 使用相同的业务流程与数据录制二份脚本2. 使用WinDiff工具协助找出需要关联的数据3. 使用web_reg_save_param函数手动建立关联4. 将脚本中有用到关联的数据以参数取代接下来将详细的说明如何执行每个步骤使用相同的业务流程与数据录制二份脚本1. 先录制一份脚本并存档。2. 依照相同的操作步骤与数据录制第二份脚本并存盘。注意所有的步骤和输入的数据一定都要一样这样才能找出由服务器端产生的动态数据。有时候会遇到真的无法使用相同的输入数据那您也要记住您使用的输入数据到时才能判断是您输入的数据还是变动的数据。使用WinDiff工具协助找出需要关联的数据1. 在第二份脚本中点选VuGen的【Tools】【Compare with Vuser…】并选择第一份脚本。2. 接着WinDiff会开启同时显示二份脚本并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本并且以红色的字体显示真正差异的文字。假如没看到红色字体请点选【Options】【View】【Show Inline Differences】。3. 逐一检视二份脚本中差异的部份每一个差异都可能是需要做关联的地方。选取差异的脚本然后复制。在复制时有时并不需要取整行脚本可能只会选取脚本中的一部分。注意请忽略lr_thik_time的差异部份因为lr_thik_time是用来模拟每个步骤之间使用者思考延迟的时间。 4. 接着要在Recording Log单一protocol或是Generation Log多重protocol中找这个值。将鼠标光标点到Recording Log的第一行开头按下CtrlF开启【Find】窗口贴上刚刚复制的脚本找出在Recording Log第一次出现的位置。  结果会有二种o 在Recording Log中找不到要找的数据这时请先确认您找对了脚本毕竟现在开启了二个几乎一样的脚本很容易弄错。o 在Recording Log中找到了要找的数据这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头从标头的Receiving response可以知道数据是从服务器端传送到client端的。假如此数据第一次出现是在Sending request中则表示此数据是由client端产生不需要做关联但是有可能需要做参数化parameterized。您要找的标头格式如下*** [tidb9 Action1 2] Receiving response from host astra.merc-int.com:80 ( 25/11/2002 12:04:00 ) 5. 现在您已经找到录制二次都不一样而且是由服务器所产生的动态数据了而此数据极有可能需要做关联。使用web_reg_save_param函数手动建立关联在找到是由服务器所产生的动态数据之后接下来要做的就是找出适当的位置使用web_reg_save_param函数将这个动态数据撷取到某个参数中。1. 要在哪里使用web_reg_save_param函数在之前的步骤我们已经在Execution Log找到可能需要关联的动态数据。在Execution Log中选取动态数据前的文字然后复制我们将会利用这段文字来帮助我们找出要关联的动态数据。 不过在这之前我们要先找出使用web_reg_save_param函数的正确位置所以我们要再重新执行一遍脚本而且这次会开启所有的Log。1. 在VuGen中点选【Vuser】【Run-Time Settings】。2. 点选【General】【Log】。3. 勾选【Enable logging】、【Always sends messages】、【Extended log】以及【Extended log】下的所有选项。4. 按下【OK】就可以执行脚本了。执行完脚本之后在Execution Log中搜寻刚刚复制的字符串。找到字符串后在字符串前面会有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函数主要是透过动态数据的前面和后面的固定字符串来辨识要撷取的动态数据的所以我们还需要找出动态数据的边界字符串。找出左边界字符串再回到Execution Log中选取动态数据前的字符串并且复制它。这时会有个问题到底要选取多少字符串才足以唯一识别要找的动态数据呢建议是越多越好但是尽量不要包含到特殊字符。在这边我们选取「input typehidden nameuserSession value」字符串。选好之后还要再确认一次这段字符串真的是可以唯一识别的所以我们在Execution Log中透过CtrlF的搜寻找找看这段字符串是否可以找到要找的动态数据。假如找不到web_reg_save_param函数还有个ORD参数可以使用ORD参数可以设定出现在第几次的字符串才是要找的字符串。将这个边界字符串加到未完成的web_reg_save_param函数中web_reg_save_param(“UserSession”, “LB input typehidden nameuserSession value”,找出右边界字符串接下来要找出动态数据的右边界字符串这个字符串就比较好找了从动态数据的最后一个字符开始通常就是我们要找的右边界字符串了。以这个例子来看就是「」所以再把右边界字符串加入web_reg_save_param函数中这时web_reg_save_param函数已经快完成了。最后再加上「LAST);」就完成整个web_reg_save_param函数了。web_reg_save_param(“UserSession”, “LB input typehidden nameuserSession value”, “RB”, LAST); 将脚本中有用到关联的数据以参数取代当使用web_reg_save_param建立参数后接下来就是用“UserSession”参数去取代脚本中写死的hard-coded资料。范例将“NameuserSession”, “Value75893.0884568651DQADHfApHDHfcDtccpfAttcf”, ENDITEM,换成“NameuserSession”, “Value{UserSession}”, ENDITEM, 到这里您已经完成了一个关联了接下来就是执行脚本是否能成功运行假如还是有问题就要检查看看是否还需要再做另一个关联。关于 web_reg_save_param 函数对于关联(correlation)来说web_reg_save_param是最重要的一个函数其功能是在下载的网页内容中透过设定的边界字符串找出特定的数据并将其储存在一个参数中以供后续脚本使用。接下来将针对web_reg_save_param做比较详细的说明。Service and registration type functionweb_reg_save_param是一个Service function。service function主要是用来完成一些特殊的工作的如关联、设定proxy、提供认证信息等当其作用时不会对网页的内容做任何的修改。web_reg_save_param同时也是一个registration type function (只要函数名称中包含_reg_的字眼表示其为registration type function)。registration type function意味着其真正作用的时机是在下一个action function完成时执行的。举例来说当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据则必须将web_reg_save_param放在此web_url之前则web_reg_save_param会在web_url执行完毕后也就是网页内容都下载完后再执行web_reg_save_param找寻要做关联的动态数据并建立参数。所以要记住一点要使用registration type function时要注意其放置的位置必须在要作用的action function之前。语法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。属性值不分大小写例如 Searchall。以下将详细说明每个属性值的意义:? Notfound:指定当找不到要找的动态数据时该怎么处置。o Notfounderror:当找不到动态数据时发出一个错误讯息。假如没设定此属性此为LoadRunner的默认值。o Notfoundwarning:当找不到动态数据时不发出错误讯息只发出警告脚本也会继续执行下去不会中断。在对角本除错时可以使用此属性值。? LB:动态数据的左边界字符串。此属性质是必须要有的而且区分大小写。? RB:动态数据的右边界字符串。此属性质是必须要有的而且区分大小写。? RelFrameID:相对于URL而言欲搜寻的网页的Frame。此属性质可以是All或是数字而且可有可无。? Search:搜寻的范围。可以是Headers(只搜寻headers)、Body(只搜寻body部分不搜寻header)、Noresource(只搜寻body部分不搜寻header与resource)或是All(搜寻全部范围此为默认值)。此属性质可有可无。? ORD:指明从第几次出现的左边界开始才是要撷取的数据。此属性质可有可无默认值是1。假如值为All则所有找到符合的数据会储存在数组中。? SaveOffset:当找到符合的动态数据时从第几个字符开始才开始储存到参数中。此属性质不可为负数其默认值为0。? Convert:可能的值有二种:o HTML_TO_URL: 将HTML-encoded数据转成URL-encoded数据格式o HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格式? SaveLen:从offect开始算起到指定的长度内的字符串才储存到参数中。此参数可有可无默认值是-1表示储存到结尾整个字符串。范例web_reg_save_param(A, LB/ica href, RB, OrdAll, LAST);nner会搜寻网页中所有以 「a href」 开头且以 「’」结束当中包含的字符串并且储存在「A」参数中。Tips and Tricks以下提供一些关联的常见问题? 如何打印出参数值lr_output_message这二个函数来做到。例如lr_output_message(“Value Captured %s”, lr_eval_string(“{ParameterName}”));lr_eval_string与lr_output_message函数的使用说明请参考LoadRunner Online Function Reference。? 在脚本的data目录下找不到路制时的快照snapshot造成在脚本的data目录下找不到路制时的快照snapshot的可能原因如下o 脚本是由VuGen 6.02或更早的版本所录制的o 汇入的Action不会包含快照snapshot的档案o 脚本是储存在只读的目录下早成VuGen无法储存执行时撷取的快照snapshoto 某些步骤并不会产生快照snapshot如浏览某个资源o 快照snapshot功能被取消【Tools】【General options】【Correlation】tab 【Save correlation information during replay】? 开启WinDiff时出现「File no longer available」的错误讯息WinDiff这个工具有些限制无法开启包含空格符的目录或是脚本所以建议命名时不要使用空格符并且尽可能将名称取短一点。? 录制时突然跳出【Correlation warning】对话窗口当你有勾选自动关联的【Issue a popup message and let me decide online】选项当VuGen发现有可能要做关联的数据时就会跳出【Correlation warning】的窗口询问你要做关联Correlation in scrīpt还是要忽略Ignore。另外你也可以勾选【Perform correlation in scrīpt】让VuGen自动作关联不会再跳出询问窗口。或是勾选【Disable correlation engine】关闭自动关联的功能。 ? 如何手动启动「Scan action for correlation」的功能要手动启动「Scan action for correlation」的功能请先执行脚本一次后点选【Vuser】【Scan Action for Correlation】。 ? 执行完脚本后并未出现【Scan Action for Correlation】窗口要启用【Scan Action for Correlation】功能请点选【Tools】【General options】【Correlation】tab勾选【Show Scan for correlation popup after replay of Vuser】选项。 关联函数一个有用的选项 在LR中关联函数web_reg_save_param的NotFound参数有两个选项含义分别如下 ERROR当关联函数未能找到匹配值时LR将抛出一个Error信息EMPTY当关联函数未能找到匹配值时LR将空值赋给该关联的参数值。 默认情况下该值为Error在大多数情况下,这是可以满足要求的。然而在某些时候我们可能需要利用关联值做一些条件判断例如设定当关联到的值为空时让脚本做一些特殊处理此时如果使用默认的选项就不合适了因为当LR识别到该关联值为空时将抛出一个错误信息提示未找到关联记录。怎么办呢此时就可以使用NotFound的另外一个选项即将NotFound参数值设为Empty 例 web_reg_save_param(customer,LBname\classiAssetsSelected\ value\,RB\,NotFoundEMPTY,LAST); 令LR将空值赋给customer参数然后在后面的脚本中结合判断条件语句如 if(strcmp(, lr_eval_string({customer})) !0)就可以让脚本根据判断条件做相应的控制。转载于:https://www.cnblogs.com/shinta/archive/2009/07/31/1535857.html
http://www.pierceye.com/news/144004/

相关文章:

  • 当建设部门网站南宁网站的优化
  • wordpress访问文件夹成都黑帽seo
  • 上海市建设工程安全质量监督总站网站做配资网站
  • 网站管理建设的需求分析小程序开发教程免费
  • 石家庄网站建设电话重庆最便宜的网站建设
  • 人才网站建设策划书pc网站建设
  • 做网站用哪几个端口 比较好微信营销
  • 网站开发价格有专业做网站的吗网站公司
  • 西安网站建设全包做网站要多少
  • 如何建设传奇网站怎样做招嫖网站
  • 企石镇网站仿做连云港网站开发
  • php 网站做分享功能重庆建设工程信息网30系统
  • 西部数码创建php网站北京上云网站建设公司
  • 中标建设集团有限公司 网站游戏开发软件有哪些
  • 上饶哪里做网站办公家具网站建设公司
  • 建设银行园湖路支行网站外贸网站建设需要注意什么
  • 失物招领网站开发项目需求分析app开发定制公司哪家好做
  • 网站不用备案阿里云 wordpress搭建网站
  • 重庆网站推广软件小朋友做安全教育的网站
  • 商家自己做的商品信息查询网站互联网有哪些行业
  • 用dw做网站时怎么添加弹窗知名网站服务器
  • 网站备案做优惠券第一营销网
  • 网站策划的基本过程全国大型网站建设
  • 个人外贸网站杭州微网站建设公司
  • wordpress皮肤下载站安徽建设工程信息网官方网站
  • 自己的电脑做服务器 并建网站asp sql网站安全性
  • 创新创业营销策略网站建设等信息系统开发计划
  • 安徽建设信息网站做胃镜多少钱天津津门网站I
  • jrs直播网站谁做的广告设计与制作专升本
  • 辽 icp 大连 网站建设个人网站做的类型