将"测试"进行到底!~!

关于LoadRunner中使用关联的解释(搜集...)

上一篇 / 下一篇  2008-04-03 10:52:30 / 个人分类:LoadRunner板块

所谓的关联(correlation)就是把脚本中一些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。

举一个常见的例子,刚刚提到有些比较聪明的服务器,这些服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。

下面的图示说明了这样的情形:

当录制脚本时,浏览器送出网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再送出网页B的请求时,这时就要用到ID=123的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。

在执行脚本时会发生什么状况?浏览器再送出网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,整个脚本的执行就会失败。

要对付这种服务器,我们必须想办法找出这个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_paramweb_create_html_param_ex:这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。

详细用法请参考使用手册。在VuGen中点选【Help>Function reference>Contexts>Web and Wireless Vuser Functions>Correlation Functions】。

自动关联

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

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

  • Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:
    • 内建(Built-in Correlation
      VuGen
      已经针对常用的一些应用系统,如AribaBuyerBlueMartiniBroadVisionInterStagemySAPNetDynamicsOraclePeopleSoftSiebelSilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options>Internet Protocol>Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。
      您也可以在【Recording Options>Internet Protocol>Correlation】检视每个关联规则的定义。
    • 使用者自订(User-defined Rules Correlation
      除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options>Internet Protocol>Correlation】建立新的关联规则。
  • Correlation Studio:有别于Rules CorrelationCorrelation Studio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。

Rule Correlation

请依照以下步骤使用Rule Correlation

  1. 启用auto-correlation
    1. 点选VuGen的【Tools>Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol>Correlation】,勾选【Enable correlation during recording】,以启用自动关联。
    2. 假如录制的应用系统属于内建关联规则的系统,如AribaBuyerBlueMartiniBroadVisionInterStagemySAPNetDynamicsOraclePeopleSoftSiebelSilverJRunner等,请勾选相对应的应用系统。
    3. 或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。
    4. 设定当VuGen侦测到符合关联规则的数据时,要如何处理:
      • Issue a pop-up message and let me decide online】:跳出一个讯息对话窗口,询问您是否要建立关联。

Perform correlation in sceipt】:直接自动建立关联

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

  1. 在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。
  2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。

逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。
在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。

 


TAG: LoadRunner板块

 

评分:0

我来说两句

Open Toolbar