• 性能测试基础---LR关联


    ·什么时候需要做关联?
    一般来说,在脚本运行出错的时候,我们就可能需要进行关联处理。
    ·脚本出错分为两种情况:
    ·直接回放出错(失败)。通常来说,如果录制成功,回放失败,排除数据的唯一性约束之后,那就必然是需要做关联的。

    ·参数化之后出错。这种时候排除数据本身的功能错误以外,通常也是要做关联处理的。

    ·什么是关联?
    一般来说,关联是用来解决请求之间的依赖关系的。

    什么叫请求之间的依赖关系呢?
    所谓依赖,是指两个请求之间有数据的交互。如果请求B中所发送的数据,是来源于请求A所响应的数据。

    脚本和真实的客户端有什么差异呢?
    客户端是可以运行客户端脚本,是可以去实现一些业务逻辑的。可以去接收和处理服务器响应的数据并且封装到请求中。
    性能脚本在没有做更多的处理之前(录制or抓包手写),是没有任何逻辑处理能力。
    所谓的关联其实就是要去模拟客户端脚本的某些数据处理能力。


    ·关联的数据的特征。
    一般来说,需要做关联处理的数据的特征有三个:
    ·数据一定是来源于服务器的响应。
    ·数据一定要在后续的请求中被用到。
    ·数据一定是动态变化。


    ·关联的方式:
    在LR中,关联的方式有两大类三小类
    ·自动关联:
    ·录制关联:功能正确,但是无用。
    ·回放关联:采取的是对比法。即自动对比录制和回放的数据。
    前提:最后一次回放必须是错误的。
    建议:最好只是用来辅助定位数据,最终要解决关联问题还是要了解业务。

    ·手动关联:根据对依赖的理解,对关联的理解来实现关联操作。


    ·手动关联详解:
    第一步:找到出错的请求。
    ·原理:通常来说,只有出错的请求才需要做关联处理。
    ·理解:出错并不是指脚本运行出现error,而是指脚本运行没有达到预期的功能目的。
    ·技巧:一般来说,重点关心使用post方法的请求。


    第二步:找出可疑数据。
    ·原理:通常来说,脚本出错的原因都是因为脚本中所封装的数据有误导致的。
    ·了解:通常来说,请求中携带数据的地方有三个:
    ·URL地址参数:
    ·请求头:
    ·请求主体:

    ·技巧:对于可疑数据的甄别,我们一般建议从三个角度出发。
    ·业务角度:
    ·键的名称:
    ·值:一般来说,用来关联的数据都具备以下特征:
    ·随机
    ·长度比较长。

    第三步:找到数据的来源。
    ·原理:录制的脚本的数据一定是来源于录制过程中服务器的响应数据。
    ·了解:在LR中,是有录制录制,叫generation log
    在generation log中,日志是按时间先后,从上到下,分块排列的。

    ·注意事项:
    ·只要查找可疑数据本身
    ·从上向下,只要查找一次(位于cookie除外)。
    找到之后,向上查找******,确认数据是否是服务器响应,如果是,则根据块的ID找到对应的请求头,获取请求路径。


    第四步:建立关联。
    ·原理:所谓的建立关联,其实就是要去通过一定的方式保存服务器响应的关联数据。

    ·操作:不同工具提供的关联方式都有所区别。
    LR中的一种半自动方式如下:
    ·切换视图模式到tree模式。
    ·确定是在recording snapshot和http view模式下。
    从上向下,依次点击脚本主请求,然后在第三步的子请求下找可疑数据,直到第一次找到为止。
    找到之后,选中可疑数据(注意不要选中其它字符),右键--create paramter。

    双击脚本树中生成的关联函数,进行必要的处理。
    ·修改参数名,使其有意义。
    ·如果LB(左边界)or RB(右边界)中有乱码,则需要做如下处理:
    ·左边界中出现乱码,则将乱码及乱码左边的字符串去除。
    ·右边界中出现乱码,则将乱码及乱码右边的字符串去除。


    第五步:替换可疑数据。
    ·原理:要将静态的关联数据,替换为动态关联所获取的数据。
    ·操作:
    CTRL+H,
    将可以数据(只有值)替换为对应的参数的调用字符串。
    一般来说,LR中的参数调用字符串为:{参数名}

    ·关联操作到底做了哪些事情?
    ·找到有依赖关系的请求
    通常来说,和性能测试工具没有关系。

    ·建议关联:建立关联通常来说就是性能测试工具要完成的事情。
    分为两部分:
    ·保存:因为服务器返回数据的逻辑是不会改变。
    即返回数据的位置、数据的格式都不会改变,变化仅仅是数据本身。
    不同的性能测试工具提供的方法不一样。

    ·调用:通过性能测试工具所提供的方法去调用所保存的数据。

    作业:
    1、phpwind论坛的发帖
    2、discuz论坛的发帖
    3、LR自带网站的登录
    4、LR自带网站的订票(要求能够实现出发和目的地的参数化)。

  • 相关阅读:
    UML基本关系
    C++关键字简述
    Install opencv on Centos
    C++编程规范
    YCbCr to RGB and RGB toYCbCr
    Linux目录结构(二)
    Dubbo工作流程
    spring bean的作用域和生命周期
    spring aop原理和实现
    静态代理、jdk动态代理、cglib动态代理
  • 原文地址:https://www.cnblogs.com/wendy-0901/p/11724704.html
Copyright © 2020-2023  润新知