简介

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

工具:

LoadRunner 12

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

VuGen录制脚本

loadrunner 如何运行python脚本 loadrunner的使用_检查点

  • 新建脚本
  • 选择协议
  • 填写脚本名称
  • 设置保存位置
  • 创建

loadrunner 如何运行python脚本 loadrunner的使用_参数化_02

 

 

 

  • Record into action: 选择脚本记录的行为,包含vuser_init、Action、vuser_end。区别是vuser_init和vuser_end中的脚本代码只执行一次,而Action中可以执行设定的次数。同时集合点只能在Action中设置。
  • Application:选择录制使用的浏览器,可手动选择。
  • URL address:要录制脚本的url地址(全称带协议)。

   

loadrunner 如何运行python脚本 loadrunner的使用_参数化_03

  录制过程操作

    1:录制按钮

    2:停止按钮

    3:暂停

    4:取消

    5:当前录制action

    6:添加action

    7:添加开始事务

    8:添加结束事务

    9:创建集合点

    10:添加备注

    11:添加文本检查

脚本调试

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

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

    

loadrunner 如何运行python脚本 loadrunner的使用_检查点_04

  • 参数化分配设置

 

  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所示。

loadrunner 如何运行python脚本 loadrunner的使用_数据_05

 

 

图1-5

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

loadrunner 如何运行python脚本 loadrunner的使用_检查点_06

图1-6

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

loadrunner 如何运行python脚本 loadrunner的使用_检查点_07

图1-7

设置

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

loadrunner 如何运行python脚本 loadrunner的使用_数据_08

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

loadrunner 如何运行python脚本 loadrunner的使用_数据_09

 

 

 

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

loadrunner 如何运行python脚本 loadrunner的使用_检查点_10

Controller创建场景

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

loadrunner 如何运行python脚本 loadrunner的使用_参数化_11

图2-1

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

loadrunner 如何运行python脚本 loadrunner的使用_检查点_12

图2-2

集合点

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

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

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

loadrunner 如何运行python脚本 loadrunner的使用_参数化_13

图2-3

参数含义:

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

结果分析

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

  • Available Scripts: 当前可用脚本。没有找到想要的可以单击Browse进入目录选择。
  • Scripts in Scenario: 选中要加入场景的脚本,单击Add,将脚本加入场景并显示在该列。