有段时间没有使用Lr了,为了防止忘记之前学的东西,近期会整理一些学习性能过程中掌握的东西,以便日后学习。

Lr的使用共分为3步:脚生成调试本——设计运行场景——生成分析报告。本篇文章主要是脚本调试部分“关联”操作的一些东西和使用过程中自己的一些浅见,有什么不正确的或者有什么别的意见欢迎大家提出来,交流一下^-^

 1、关联的含义


   “关联”——在脚本回放的过程中客户端发出请求后,通过关联函数所定义的关联规则(左右边界值) 在服务器相应的内容中查找相应的值,然后以变量的形式替换掉录制时的静态值,从而向服务器发出正确的请求,这种动态获取服务器 相应内容的方法叫“关联”。


 2、关联与参数化


   很多人分不清关联与参数化的区别,其实“关联”也是一种特殊的“参数化”,只是它与一般的参数化有些不同:一般的参数化的参数来源于一个文件、一个定义好的table或者通过sql写的一个结果集等;但是关联所获得的参数是来源于服务器响应请求所返回的一个符合条件的、动态的值(注意,是动态的、符合条件的值)。


 3、什么时候需要做关联


  当客户端的请求是随着服务器端的响应而动态变化的,(注意,在录制脚本时应该对测试的项目有适当的了解, 知道哪些请求需要用到服务器响应的动态值)此时,我们需要用到关联; 也可以用另一种方法判断哪些值需要做关联:我们将脚本录制两遍(两次操作业务完全相同),通过对比脚本的方法来找需要做关联的部分,(注意,并不是两个脚本中所有不同点都需要关联,这需要具体情况具体分析)。


 4、关联有两种方法:自动关联和手动关联


   但大部分情况下我们选择手动关联,而且手动关联也很可靠,不会对不需要关联的数据进行关联,同时也不会有些需要进行关联的动态数据查找不到的情况。


 5、这里我只说一下如何进行手动关联,自动关联不再介绍。


  手动关联步骤:
     1、录制两遍脚本;
     2、使用Lr自带的脚本对比工具——WinDiff(tools下)查找出两个脚本的不同,判断哪些数据需要进行关联;(注意,
       a、×××表示有差异的脚本,红色(options——view——show inline differences)标出真正差异的内容,思考时间可以忽略
       b、查找关联数据:找到不同的部分后,复制,然后打开Generation Log,按Ctrl+F,点击查找刚复制的内容,
          找到后查看该部分的信息,确认是客户端的请求信息(如果出现在$$$$$$ Request ……$$$$$$这个部分,不需要做关联)还是服务器回应的信息(****** Response Header…… ******和****** Response Body ……******中的部分需要做关联)。  
          找到信息后,需要记录如下信息:这个不同数据之前的内容和之后的内容;这个不同数据出现的位置,是Header还是Body
      )
    3、确定插入关联函数的位置;
      (根据上一步找到的不同点位置可以确定在哪个请求之后产生的(response对应的reques的位置),一般关联函数写在发出请求函数之前。)
    4、直接在代码中正确的地方插入web_reg_save_param("ParaName","LB=","RB=","search=body/all/headers/noresource",LAST)函数
        或者 在tree视图中添加web_reg_save_param函数手动建立关联
       (找到发出请求的函数,右键——insert before——web_reg_save_param_ok,输入定义的参数信息,点击ok,回到脚本模式看函数是否正确。);
    5、将脚本中所有用到关联的数据全部用参数替换掉(将脚本中原来服务器返回的所有动态值用{paraName}全部替换);
    6、回放脚本,验证关联是否正确。(注意,关联是否正确,主要看脚本是否报错,其次查看业务是否完成)。

 

Lr脚本的参数化、集合点的插入、事务的插入和文本/图像检查点的插入会在下篇文章中进行详细的说明。