LoadRunner之--关联(correlation)

上一篇 / 下一篇  2009-08-18 14:45:23 / 个人分类: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的部份,这样就可以成功骗过服务器,正确地完成整个交易了.

 

当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且记录下来,产生脚本

        当执行脚本时,VuGen伪装成浏览器,然后根据脚本,把当初浏览器所做过的,再对网站服务器运行一遍。

        所以记录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样,是写死的。这样的作法在遇到有些比较聪明的服务器时,还是会失效。这时就需要透过「关联(correlation)」的做法来让VuGen可以再次成功地骗过服务器。

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

下面举一个实例来说明:

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

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

用以下进行图示:

      [点击图片可在新窗口打开]

具体错误的信息会出现一些什么内容呢?

        错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。
VuGen提供二种方式帮助您找出需要做关联(correlation)的值:
1. 自动关联
2. 手动关联
自动关联
        VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。
自动关联提供下列二种机制:
? Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:
o 内建(Built-in Correlation):
        VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、 PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。
        您也可以在【Recording Options】>【Internet Protocol】>【Correlation】检视每个关联规则的定义。
请依照以下步骤使用Rule Correlation:
1. 启用auto-correlation
1. 点选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】:直接自动建立关联

手动关联
手动关联的执行过程大致如下:
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. 逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。

4.然后利用一些函数实现关联

        以上仅仅谈了一下LR脚本为什么要关联,关联包括手工关联和自动关联,更为详细的内容可以参照LR的使用说明书


TAG:

 

评分:0

我来说两句

Open Toolbar