zoukankan      html  css  js  c++  java
  • LoadRunner基本使用

    简介

    性能测试:评估、优化、预测

    工具:

    LoadRunner 12

    • VuGen:录制脚本
    • Controller:创建场景
    • Analysis:结果分析

    VuGen录制脚本

    • 新建脚本

    • 选择协议

    • 填写脚本名称

    • 设置保存位置

    • 创建

    • Record into action: 选择脚本记录的行为,包含vuser_init、Action、vuser_end。区别是vuser_init和vuser_end中的脚本代码只执行一次,而Action中可以执行设定的次数。同时集合点只能在Action中设置。

    • Application:选择录制使用的浏览器,可手动选择。

    • URL address:要录制脚本的url地址(全称带协议)。

       

      录制过程操作

        1:录制按钮

        2:停止按钮

        3:暂停

        4:取消

        5:当前录制action

        6:添加action

        7:添加开始事务

        8:添加结束事务

        9:创建集合点

        10:添加备注

        11:添加文本检查

    脚本调试

    • 检查点-文本检查点、图片检查点

    注:包含关键字reg的函数一般是注册函数,一般放在请求前面;检查点功能选项默认是关闭的,一般不建议使用,脚本运行中会消耗一些资源。脚本调试期间可以使用,但是场景运行期间建议关闭。

        

    • 参数化分配设置

      1)Select Next Row: 选择下一行的策略。各子选项含义如下。

        Sequential: 顺序取行;

        Random: 随机取行;

      2)Update value on: 更新值的策略。各子选项含义如下。

        Each iteration: 每次迭代都要取新值;

        Each Occurrence: 只要发现该参数就重新取值;

        Once: 在所有的反复中都使用同一个值。

    依据此,理论上参数化取值方式有9种,可自行实验验证。

    参数化的类型非常多,但一般最常用的是File和Table类型,其他类型的用法参考如下:

        Date/Time: 可以在需要参数化日期的地方使用;

        Group Name: 使用该虚拟用户所在的Vuser Group名称来代替参数化;

        Iteration Number: 使用脚本执行的当前迭代次数来代替参数化;

        Load Generator Name: 使用产生Vuser负载的机器名称来代替参数化;

        Random Number: 使用一个随机数来代替参数化;

        Unique Number: 使用一个唯一的证书来代替参数化;

        User Defined Functions: 扩展接口,可从用户开发的DLL文件中提取数据;

        Vuser ID: 使用虚拟用户的ID来代替参数化;

        XML: 提供对XML格式数据的支持。可以从XML中读取数据进行参数化。

    • 关联

      关联是动态地获取服务器返回的某些值,避免脚本回放过程中因返回值的变化引起的回放失败。一般以下几种情况需要考虑是否使用关联:

        1、服务器返回中存在动态变化的值,一般就是类似Session的无规则数据;

        2、运行后没有报错,但是也没有产生记录;

        3、后续的操作要使用到之前的数据。例如,回帖操作要知道之前发帖的tid才能回帖。

        LoadRunner中的关联,靠关联函数实现。 LoadRunner12关联函数实现有两种,一种是正则匹配,一种是左右边界匹配。 正则匹配关联函数:

    web_reg_save_param_regexp
    

    左右边界关联函数:

    web_reg_save_param_ex
    

    LR12左右边界函数用法:

    web_reg_save_param_ex(“ParamName=关联的名称”, “LB=左边界”, “RB=右边界,LAST);
    

    eg:

    web_reg_save_param_ex("ParamName=logintype",
    		   "LB=id=\"logintype\" value=\"",        
    		      "RB=\" ",        
    		       LAST);
    

    1)自动关联 LR12脚本录制结束会默认弹出自动扫描的关联,检查关联是否有效, 点击“Correlate”按键即可自动生成关联函数,如图1-5所示。

    图1-5

    2)手动关联 -分析脚本中出现的动态响应值,一般需要关联的值会在HTML的hidden标签中出现。在快照展示面板查看lr捕捉到的请求响应数据,用以查找需关联参数项。 -录制两次相同业务流程的脚本,利用Tool-Compare功能,找到脚本差异数据,逐个分析是否需要关联。

    图1-6

    3)添加关联函数 在代码中添加关联函数,并在引用关联参数的 函数中使用{关联参数名称}来替换一长串数字、字母,如右图1-7所示。

    图1-7

    设置

    1)General options(通用设置)Tools-options

    2)Recording options(录制设置)Record-Recording Options

    3)Run-time Settings(运行时设置)Replay-Runtime Settings

     

    Controller创建场景

    Controller常用启用方式有两种,一种是在VuGen中的Tools-Create Controller Scenario,如图2-1所示,另一种,直接在桌面打开Controller软件。

    图2-1

    直接打开Controller程序,首次进入界面2-2,这里是选择场景种类的,还有选取需要运行的脚本。有几个关键参数: Select Scenario Type: 选择场景类型。根据需要,可以选择手工场景和基于目标的场景。 Manual Scenario: 手工场景。常用、比较灵活。子选项,是否使用百分比模式,一般不勾选。 Goal-Oriented Scenario: 基于目标场景。设定目标,预期目标明确。

    图2-2

    集合点

    运行场景前,一般需要设置集合点。集合点的意义在于最大程度地模拟并发。

    注:集合点并不能模拟真正意义上的并发,因为即使是通过集合点的虚拟用户,但由于网络等多种因素的影响并不能同一时刻到达服务器,仍有先后差异。

    • 启用集合点:在LoadRunner中启用集合点需要在编写脚本时加入,集合点函数为 lr_rendezvous(“集合点名称”);只需要把集合点函数放到脚本的某个事物或操作之前即可。
    • 集合点策略 Rendezvous: 集合点的列表,可通过下方的Disadble Rendezvous按钮来启用或关闭; Scripts: 当前脚本的名称; Vuser: 当前设置的并发用户数,可通过下方的Disadble Vuser; Policy(集合点策略): 点击进入策略设置对话框,如图2-3。

    图2-3

    参数含义:

    • 当所有用户的X%到达集合点时释放;
    • 当所有正在运行的用户X%到达集合点时释放;
    • 当X个用户达到集合点时释放;
    • 超时设置。表示等待用户超时的设定,如果在X秒内还没有满足要求的用户到达,则释放集合点。

    结果分析

    暂无分享。几个重要参数:

      • Available Scripts: 当前可用脚本。没有找到想要的可以单击Browse进入目录选择。
      • Scripts in Scenario: 选中要加入场景的脚本,单击Add,将脚本加入场景并显示在该列。
  • 相关阅读:
    与eolinker api集成
    为什么要用eolinker帮助API开发
    什么是Eolinekr
    使用Eolinker加快您的API开发
    java反射
    mybatis-查询过程
    mybatis初始化过程
    mybatis的插件分析
    web.xml中的ContextLoaderListener和DispatcherServlet区别
    css+js杂记
  • 原文地址:https://www.cnblogs.com/marvintester/p/14585189.html
Copyright © 2011-2022 走看看