LoadRunner性能测试应用(连载二十三)

发表于:2009-2-12 17:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:姜艳、于波等    来源:51Testing提供试读

  3.3.3  手动关联方法

  在对脚本进行关联的时候,有的脚本利用上面介绍的方法自动关联就可以了,但是也有可能某些需要做关联的动态数据,连“Correlation Studio”都无法侦测出来,这时就需要进行手动关联。

  虽然手动关联比自动关联方法麻烦一些,操作复杂,对于没有代码编程经验的测试初学者来说,甚至有时连需要关联的位置都无法找到,但是经过多次实践后,会发现很多关联的方法与技巧。毕竟手动关联出来的脚本拥有更大的灵活性,可以随意改动来满足用户不同的需求。

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

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

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

  ● 使用web_reg_save_param函数手动建立关联。

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

  具体的执行过程如下:

  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(单一协议)或是Generation Log(多重协议)中找这个值。将鼠标光标放到Recording Log的第一行开头,按下“Ctrl+F”组合键,开启“Find”窗口,贴上刚刚复制的脚本,找出其在Recording Log第一次出现的位置。

  如果在Recording Log中找不到要找的数据,这时请先确认是否找对了脚本,毕竟现在开启了两个几乎一样的脚本,很容易弄错。

  如果在Recording Log中找到了要找的数据,这时要确认数据是否为从服务器端传送过来的。首先可以检查数据的标头,从标头的Receiving response可以知道数据是否是从服务器端传送到客户端的。假如此数据第一次出现是在Sending request中,则表示此数据是由客户端产生,不需要做关联,但是有可能需要做参数化(Parameterized)。

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

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

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

  (1)web_reg_save_param函数

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

  web_reg_save_param是一个服务端函数(Service function,主要用来完成一些特殊的工作,如关联、设定proxy、提供认证信息等),当其作用时,不会对网页的内容做任何的修改。

  web_reg_save_param同时也是一个注册类型的函数(Registration Type Function,只要函数名称中包含_reg_的字眼,表示其为注册类型的函数)。注册类型的函数意味着其真正作用的时机是在下一个动作函数(Action Function)完成时。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param,寻找要做关联的动态数据并建立参数。

  要记住一点,当使用注册类型的函数时,要注意其放置的位置必须在要作用的动作函数之前。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号