2023拉

LR关联功能总结

上一篇 / 下一篇  2011-06-22 10:55:47 / 个人分类:性能测试

    一.关联介绍:

         LR录制的脚本只是忠实记录了所有从客户端发送到服务器端的数据,并在脚本回放的时候按照录制的顺序将录制下来的数据重新发送出去。但是,实际上许多的系统都采用SessionID或SeqID等方法来标识不同的任务和数据报,应用在每次运行时发送的数据并不完全相同。所以,为了让脚本能够支持测试的需求,就必然要用某种机制对脚本的数据进行出来了。总之一句话:通过关联可以在测试中保持动态值。

   二.一般的关联步骤:

      1.从服务器返回的数据中选取需要进行关联的数据。

      2.将该数据存入脚本的一个参数中

      3.将脚本中需要使用该数据的地方用参数来替换。

     Tip:对于web来说,一般会用一个hidden 的 field存放。所以在可以服务器返回的记录查找该字段值。

    三:关联的目的:

       1.简化或优化代码

        例如,如果依次执行一系列的相关查询,您的代码可能会变得很长。为了减少代码的大小,可以嵌套查询,但这样会失去准确性,而代码会变得复杂而难以理解。通过关联语句,不需要嵌套就可以链接查询。

       2.用于动态数据       

       许多应用程序和网站当前日期和时间标识会话。如果尝试重播脚本,该操作将会失败,应为当前时间与录制时间不同(LR自带的WEB演示程序)。通过关联数据可以保存动态数据,并在整个方案过程中使用这些数据。

     四:关联操作

     方法一:自动关联

        1.  Toolsàrecording optionsàcorrelationàenable

        2.设置完成后录制登陆 - 退出过程。

        3.利用LR自带的自动关联进行关联。

     方法二:手动关联

         1:录制测试脚本,录制二遍

         2:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联(Tools下的 Compare with Vuser进行2个相同操作的脚本对比)

         3:确定插入关联的位置

          4:在VIEW TREE中使用web_reg_save_param函数手动建立关联

         5:将脚本中有用到关联的数据,用参数代替

        6:验证关联的正确性

     方法三:一边录制一边关联技术流程即创建规则

        点击Tools->Recording Option->Correlation或者使用快捷键Ctrl+F7->Correlation

一边录制一边关联技术的原理是录制某些系统时,会得到一些自动的关联函数,这就是这种方式的好处,自己定义一个新的规则来实现一次边录制边关联的功能。

(1)点击(Ctrl+F7->Correlation或Tools->Recording Option->Correlation)

(2)点击New Application新建一个application_1的应用,点击New Rule新建规则Rule_

5

(3)新建一个脚本(File->New),录制登陆框,回放脚本,顺利通过(客户端使用关联技术伪装了sessionid欺骗了服务器

     五:定位需要关联操作

         1.Vuser -Scan Script. for Correlations

         2.在Server Response 中进行比对2次服务器变化的数值。

      六:常见的需要关联的场景

         1.登录操作。

         2.先查后修改,先差后删除。

         3.并发控制:防止2个用户同时修改或同时删除一条记录。

      七:关联函数模型

       int web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);  成功返回:LR_PASS(0),失败LR_FAIL(1)

        例子:web_reg_save_param ("Test","LB=userSession Value","LB=>","Ord=1"

               "RelFrameID=1.21","Serch=Body","IgoreRedirections=Yes",LAST);

       八:实例

 

(1)录制一个脚本(访问首页脚本)

             Action()

{

                  web_url("WebTours",

                   "URL=http://127.0.0.1:1080/WebTours/",

                  "TargetFrame=",

                  "Resource=0",

                  "RecContentType=text/html",

                  "Referer=",

                  "Snapshot=t1.inf",

                  "Mode=HTML",

                  LAST);

                  return 0;

}

(2)选择Insert->New step->Add step->web_reg_save_param

(3)给web_reg_save_param函数输入一些信息

(4)在原脚本中生成了web_reg_save_param函数的参数"temp"

      web_reg_save_param("temp",

      "LB=Version4.0 -",

      "RB=.NET 2.0",

      "Ord=1",

      "Search=NoResource",

      LAST);

(5)运行一下刚关联好的脚本,发现运行通过了(客户端使用关联技术伪装了sessionid欺骗了服务器)

 

      


TAG:

 

评分:0

我来说两句

Open Toolbar