LoadRunner中参数化技术详解

原创 2012年03月21日 14:54:06

LoadRunner中参数化技术详解

LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不同的值进行循环输入。这时,在LoadRunner中就可以进行参数化设置,以使用多个不同的值提交应用请求。

【参数化】使用指定数据源中的值来替换脚本录制生成的语句中的参数。

【好处】

l  减少脚本的大小

l  提供使用不同的值执行脚本的能力,更加真实的模拟现实应用。

【参数化步骤】

l  用参数替换Vuser脚本中的常量值

l  为参数设置属性和数据源

【操作步骤】

1. 在脚本中选择需要参数化的内容,单击鼠标右键,从弹出菜单中选择Replace with a parameter。


2. 在弹出的对话框中设置参数名称、参数类型。


3. 单击对话框中的Properties按钮,可以设置参数数据池中的内容以及参数的取值方式。


数据类型:

序号

参数类型

说明

1

Date/Time

在需要输入日期、时间的地方,可以用Date/Time来代替,可以选择日期格式,也可进行定制。

2

Group Name

该类型的参数用执行脚本的VU所属组的名称来替代。但是在VuGen中运行时,该值为None。

3

LoadGenerator Name

LoadRunner使用该虚拟用户所在的Load Generator机器名来代替参数。

4

Iteration Number

LoadRunner使用该测试脚本当前循环的次数来代替参数

5

Random Number

随机数,可以设置产生随机数的范围

6

Unique Number

唯一值来代替参数

7

Vuser ID

LoadRunner使用该虚拟用户的ID来代替参数值,该ID是由Controller来控制的,在VuGen中运行脚本时,该值为-1.

8

DataFile/Table

可以在属性设置中编辑文件,添加内容,也可以从数据库中提取数据。

9

UseDefinedFunction

从dll的简单函数中获取信息替代参数

 

【注意】对于参数类型为File/Table的数据文件:

l  在参数数据显示区中,最多只显示前100条数据,之后的不显示,但不影响正常取数据。

l  在记事本中编辑参数数据时,数据文件一定要以一个空行结束,否则,最后一行输入的数据不会被参数所使用。

对于参数类型为File/Table的参数的更新方式:

Update Value on

(更新方法)

Select next row

(数据分配方法)

Sequential顺序

Random随机

Unique唯一

Each Iteration(每次迭代)

对于每次迭代,Vuser会从数据表中提取下一个值

对于每次迭代,Vuser会从数据表中提取新的随机值。

对于每次迭代,Vuser会从数据表中提取下一个唯一值。

Each Occurrence(每次出现)

参数每次出现时,Vuser将从数据表中提取下一个值,即使在同一迭代中。

参数每次出现时,Vuser将从数据表中提取新的随机值,即使在同一迭代中。

参数每次出现时,Vuser将从数据表中提取新的唯一值,即使在同一迭代中。

Once(一次)

对于每一个Vuser,第一次迭代中分配的值,将用于所有后续的迭代。

第一次迭代中分配的随机值将用于该Vuser的所有迭代。

第一次迭代中分配的唯一值将用于所有的后续迭代。

 

 

举例:

假设存在:
数据:A、B、C
虚拟用户:Vuser1、Vuser2、Vuser3
脚本中参数出现三次,脚本迭代三次
怎样取下一行数据?
Sequential:顺序,所有虚拟用户按照顺序读取数据表
Random:随机,所有虚拟用户随机形式读取数据表
Unique:唯一,所有虚拟用户每次各取一值(不重复)
什么时候访问数据表完成数据更新?
Each iteration:每次迭代以后
Each occurrence:每次出现参数
Once:每出现一个虚拟用户

实例:
顺序
Sequential + Each iteration
第一次迭代 无论参数任何时候出现 Vuser1、Vuser2、Vuser3 取A
第二次迭代 无论参数任何时候出现 Vuser1、Vuser2、Vuser3 取B
第三次迭代 无论参数任何时候出现Vuser1、Vuser2、Vuser3 取C
Sequential + Each occurrence
第N次迭代 参数第一次出现 Vuser1、Vuser2、Vuser3 取A
第N次迭代 参数第二次出现 Vuser1、Vuser2、Vuser3 取B
第N次迭代 参数第三次出现 Vuser1、Vuser2、Vuser3 取C
Sequential + Once
第N次迭代 无论参数任何时候出现 Vuser1取A Vuser2取B Vuser3取C

所有用户均取A
随机
Random + Each iteration
第N次迭代 无论遇到该参数多少次 Vuser1都只取A,或者B,又或者C,本次迭代不再更新
第N次迭代 无论遇到该参数多少次 Vuser2都只取A,或者B,又或者C,本次迭代不再更新
第N次迭代 无论遇到该参数多少次 Vuser3都只取A,或者B,又或者C,本次迭代不再更新
在N+1次迭代,每个Vuser重新随机抽取数据

Random + Each occurrence
第N次迭代 第一次遇到该参数 Vuser1、Vuser2、Vuser3在A、B、C中随机抽取一个
第N次迭代 第二次遇到该参数 Vuser1、Vuser2、Vuser3重新在A、B、C中随机抽取一个
第N次迭代 第三次遇到该参数 Vuser1、Vuser2、Vuser3重新在A、B、C中随机抽取一个
在N+1次迭代,每个Vuser继续保持每遇到一次参数就重新抽取一次数据
Random + Once
第N次迭代 无论遇到该参数多少次 Vuser1都只取A,或者B,又或者C
第N次迭代 无论遇到该参数多少次 Vuser2都只取A,或者B,又或者C
第N次迭代 无论遇到该参数多少次 Vuser3都只取A,或者B,又或者C
在N+1次迭代,每个Vuser不会重新抽取数据
唯一
注意:使用该Unique类型必须注意数据表有足够多的数。
比如Controller 中设定20 个虚拟用户进行5 次循环,那么编号为1 的虚拟用户取前5个数,编号为2 的虚拟用户取6-10 的数,依次类推,这样数据表中至少要有100个数据,否则Controller 运行过程中会返回一个错误。
因此以下例子在数据表中加入数据D、E、F、G、H、I。
Unique + Each iteration
第一次迭代 无论参数出现多少次 Vuser1取A Vuser2取D Vuser3取G
第二次迭代 无论参数出现多少次 Vuser1取B Vuser2取E Vuser3取H
第三次迭代 无论参数出现多少次 Vuser1取C Vuser2取F Vuser3取I
Unique + Each occurrence
第一次迭代 第一次出现该参数 Vuser1取A Vuser2取D Vuser3取G
第一次迭代 第二次出现该参数 Vuser1取B Vuser2取E Vuser3取H
第一次迭代 第三次出现该参数 Vuser1取C Vuser2取F Vuser3取I
Unique + Once
无论进行多少次迭代 无论参数任何时候出现 Vuser1取A Vuser2取B Vuser3取C
数据D、E、F、G、H、I不取

LR用户名参数化,运行场景中虚拟用户数,循环次数之间的关系

录制一个oa系统,用户名进行了参数化100个,然后进行压力测试,模拟了500个用户,运行了20分钟。 问题1:请问:用户名的参数化最大只能有100个吗?我倒了2000个用户,但是导入后只显示100个...
  • takusann2007
  • takusann2007
  • 2014年02月08日 10:40
  • 3591

LR手动关联参数化问题总结

LR手动关联参数化问题总结   所谓的关联就是把脚本中某些写死的代码(hard-coded)数据,转变成截取自服务器所送的、动态的、每次都不一样的数据。 一般情况下,比较聪明的服务器在每个浏览...
  • zouhui1003it
  • zouhui1003it
  • 2017年02月06日 22:40
  • 1342

LoadRunner总结(2)-参数化中的取值

前言:最近的工作要求就是给组里写一份LoadRunner知识点整理的文档,发出来共享,有错误的地方希望大家的指正 ——————————————————————————————————————————...
  • typing_yes_no
  • typing_yes_no
  • 2016年07月09日 14:46
  • 2352

loadrunner之 学习五:参数化

学习五:参数化参数化分为几块内容逐渐学习:1.简单实现 在脚本中选中要参数化的内容,‘右键菜单’—‘Replace with a new parameter’,可以选择或新建一个parameter,我...
  • huilan_same
  • huilan_same
  • 2016年06月07日 15:06
  • 1532

Loadrunner参数化

改变参数化的取值方式,关键在于Select next row和Update value on这两个选项。 【Select next row】包括以下选项: Sequential:顺序方式R...
  • cindy_cao
  • cindy_cao
  • 2016年04月01日 15:54
  • 313

LR参数化设置:数据分配与取值方式

LoadRunner参数化设置中有九种取值方式:(以用户名参数user为例,其数据参数列表为:jojo、201401、201402、201403、201405、201406、201407、201408...
  • cgg66
  • cgg66
  • 2013年12月13日 11:04
  • 2021

LoadRunner常用函数列表

1.        Intweb_reg_save_param("参数名","LB=左边界","RB=右边界",LAST);/注册函数,在参数值出现的前面使用,注册成功时返回值为0,注册失败时返回值为...
  • huangjin0507
  • huangjin0507
  • 2016年08月08日 15:25
  • 3112

细说LoadRunner参数化(转)

前言:为什么这里说是细说LoadRunner参数化,在书和网上到处都能找到关于LoadRunner参数化的内容,但是细心的读者不能难发现,虽然现在很多资料都有关于参数化的内容,但写的都不够详细,对于初...
  • Quiettesting
  • Quiettesting
  • 2015年07月16日 09:45
  • 895

LoadRunner配合实例讲解如何参数化,关联,集结点,事务,设置场景,检测系统资源CPU,Memory..

  • 2008年12月30日 13:42
  • 516KB
  • 下载

哈哈哈,LR自动参数化的问题终于有进展了!

搞了我一下午,终于从郁闷中解脱出来了!LR自动参数化的问题去年就开始搞了,结果做了一半没时间了,也遇到了一些问题,最主要的问题还是用DLL连接数据库成功之后,也从数据库中取值之后,程序运行完了之后,到...
  • lengyue_112
  • lengyue_112
  • 2007年05月18日 17:31
  • 1156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LoadRunner中参数化技术详解
举报原因:
原因补充:

(最多只允许输入30个字)