Loadrunner如何做关联

上一篇 / 下一篇  2011-03-24 21:15:12 / 个人分类:Loadrunner

当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏览器与服务器之间所有的对话,包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了client端要对server端所说的话,而Recording Log则是完整纪录二者的对话。

当执行脚本时,您可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器,然后把网站内容传送给VuGen。

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

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

举一个常见的例子,对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen。

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

举一个常见的例子,对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen

哪些错误代表着应该做关联(correlation)?

会出现什么错误讯息,与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。但严格来讲,并没有任何特定的错误讯息是和关联(correlation)有关系的。

如何做关联(correlation)?

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

l         web_reg_save_param:最常用来做关联(correlation)的函数。

语法:web_reg_save_param ( “Parameter Name” , < list of Attributes >, LAST );

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

 建议使用 web_reg_save_param 函数。

具体应用参见帮助:在VuGen中点选【Help>Function reference>Tuxedo Vuser Functions (LRT)>Correlation Functions】。

如何找出要关联(correlation)数据?简单的说,每一次执行时都会变动的值,就有可能需要做关联(correlation)。VuGen提供二种方式帮助您找出需要做关联(correlation)的值:

1.       自动关联

2.       手动关联

自动关联:

VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。自动关联提供下列二种机制:

• Rules Correlation:在录制过程中,VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:

内建(Built-in CorrelationVuGen已经针对常用的一些应用系统,如AribaBuyerBlueMartiniBroadVisionInterStagemySAPNetDynamicsOraclePeopleSoftSiebelSilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。

您可以在【Recording Options>Internet Protocol>Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。

您也可以在【Recording Options>Internet Protocol>Correlation】检视每个关联规则的定义。
    
使用者自订(User-defined Rules Correlation:除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options>Internet Protocol>Correlation】建立新的关联规则。

• Correlation Studio:是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,借此找出需要关联的数据,并建立关联。

    Rule Correlation

请依照以下步骤使用Rule Correlation

1. 启用auto-correlation

l         点选VuGen的【Tools>Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol>Correlation】,勾选【Enable correlation during recording】,以启用自动关联。

l         假如录制的应用系统属于内建关联规则的系统,如AribaBuyerBlueMartiniBroadVisionInterStagemySAPNetDynamicsOraclePeopleSoftSiebelSilverJRunner等,请勾选相对应的应用系统。

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

l         设定当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.       将脚本中有用到关联的数据,以参数取代。

 

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

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

l         先录制一份脚本并存档。

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

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

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

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

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

l         在第二份脚本中,点选VuGen的【Tools>Compare with Vuser…】,并选择第一份脚本。

l         接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options>View>Show Inline Differences】)。

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

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

l         接着要在Recording Log(单一protocol)或是Generation Log(多重protocol)中找这个值。将鼠标光标点到Recording Log的第一行开头,按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log第一次出现的位置。结果会有二种:

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

bRecording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response

TAG: 软件测试 LoadRunner loadrunner 关联 自动化

ljl0896的个人空间 引用 删除 ljl0896   /   2012-11-23 09:32:59
5
wang122188的个人空间 引用 删除 wang122188   /   2011-05-08 17:42:34
很受用,明天去实践一下,谢谢!
引用 删除 魏江龙   /   2011-04-25 19:22:42
学习了!谢谢!
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2020-11-17  
1234567
891011121314
15161718192021
22232425262728
2930     

数据统计

  • 访问量: 5532
  • 日志数: 7
  • 图片数: 1
  • 建立时间: 2010-12-07
  • 更新时间: 2011-04-21

RSS订阅

Open Toolbar