LoadRunner参数化详解

一、常见参数化类型

1、File:文本格式

设置如下:

输出如下:

2、Date/Time:获取当前时间,设置显示格式及更新方式

设置如下:

输出如下:

3、Unique Number:获得一个唯一的数据,在做某些主键属性的时候比较方便。当需要大量用户名时,我们可以参数化话用户名后的编号,将其设置为唯一的取值即可。

4、Iteration Number:该参数用于获得当前所在迭代的编号,设置显示位数,1-8位,不足位数前补0

设置如下:

输出如下:

5、Load Generator Name:该参数用于获运行时所在的服务器名称,设置显示位数,1-8位,不足位数前补0

设置如下:

输出如下:

6、Random Nummber:该参数用于生成一定格式的随机内容,可以通过设置最小值和最大值,来实现范围内随机数的生成

设置如下:

输出如下:

7、Table:Table参数类型是一个file类型的增强版,它提供了一些独特的功能,Columns提供了对列的分隔方式的设置。File参数类型的缺点就在于它的分隔符只是使用了逗号、制表符、空格三种格式。如果参数化的对象中同时存在逗号、制表符、空格时,只有使用Table参数类型才能解决这个问题。

8、VuserID:通过这个参数类型可以虚拟用户的编号,在场景中,每个用户都有一个唯一用户名,区别这个用户名是通过用户的ID来说明。例如Vuser1,这里说明用户名为Vuser (一般为脚本名),而用户编号为1。如果需要获取用户的编号,就可以通过这个参数来实现。

9、Group Name:在VuGen中运行时,Group Name将会是None

 

二、File参数化设置

2.1 假设一个dat文件中有多列值,Select column中设置取值的标识:

by number是按第一列、第二列、第三列的方式取列值;

by name是按列名取值。

 

2.2 File format中:

column定义分列方式,是按逗号,tab还是空格;

First data定义取值从列表的第几行开始取值,默认是第一行。

 

2.3 与参数取值方式相关的设置有三个:

1、Select next row:下次取值怎么取

(1)Sequential:按照顺序一行行的取值。每一个虚拟用户都会按照相同的顺序读取

(2)Random:在每次迭代里随机的读取一个,但是在循环中一直保持不变

(3)Unique :每个VU取唯一的值

(4)Same Line As :可以设置和前面定义的参数取同行的记录。通常用在有关联性的数据上面。比如做登录测试的脚本时,每个用户的密码都不同,就可以这样定义:创建参数文件,共两列username、passwd,则设置完username的取值方式后passwd设成 same line as username。

2、Update value on:碰到什么情况去更新这条数据

  (1)Each iteration :每次迭代都要取新值。从action头运行到action尾叫一次迭代。

  (2)Each occurrence :每次出现重新取值,如果一个action中该参数多次出现,每遇到一个就要重新取一个值

  (3)Once :取一次之后再也不变了

3、When out of value:值不够的情况如何取值

Unique实际上是压力测试中更为常用的设置。如果Select next row选择unique的设置,每个数据只会用一次,当调用的次数或迭代次数超过值的个数时就可能会报错。when out of value可以选择当数值个数不够的情况系统改如何取值。

  (1)Abort Vuser:停止测试

  (2)Continue in a cyclic manner:循环取值,再重新开始新一轮的unique取值

  (3)Continue with last value:沿用最后一个值

 

三、File参数化实例

1、单用户多次循环(数据test1111、test2222、test3333,脚本中参数出现2次,循环3次)

 

Select next row

Update value on

执行结果

Sequential

Each iteration

test1111,test1111,test2222,test2222,test3333,test3333

Each occurrence

test1111,test2222,test3333,test1111,test2222,test3333

Once

test1111,test1111,test1111,test1111,test1111,test1111

Random

Each iteration

test1111,test1111,test2222,test2222,test1111,test1111

Each occurrence

test1111,test3333,test1111,test1111,test1111,test2222

Once

test1111,test1111,test1111,test1111,test1111,test1111

Unique

Each iteration

test1111,test1111,test2222,test2222,test3333,test3333

Each occurrence

test1111,test2222,test3333,test1111,test2222,test3333

Once

test1111,test1111,test1111,test1111,test1111,test1111

 

2、多用户多次循环(虚拟用户Vuser1、Vuser2、Vuser3,数据A、B、C,脚本中参数出现3次,循环3次)

多个用户并发的时候,每个用户都是独立取值的,任何用户取值都不会影响到其他用户。

但是,当Select next row选择Unique时,LoadRunner会预先将参数值分配给每个用户,分配给Vuser1用户的值Vuser2用户就不能再用,参数值都是被用户独占的,因此使用该Unique类型必须注意数据表有足够多的数。比如Controller 中设定20 个虚拟用户进行5 次循环,那么编号为1 的虚拟用户取前5个数,编号为2 的虚拟用户取6-10 的数。为了测试Unique,加入数据D、E、F、G、H、I。

Unique + Once

无论进行多少次迭代 无论参数任何时候出现 Vuser1取A Vuser2取B Vuser3取C 
数据D、E、F、G、H、I不取

Unique + Each occurrence

第一次迭代 第一次出现该参数 Vuser1取A Vuser2取D Vuser3取G
第一次迭代 第二次出现该参数 Vuser1取B Vuser2取E Vuser3取H

第一次迭代 第三次出现该参数 Vuser1取C Vuser2取F Vuser3取I

Unique + Each iteration

第一次迭代 无论参数出现多少次 Vuser1取A Vuser2取D Vuser3取G
第二次迭代 无论参数出现多少次 Vuser1取B Vuser2取E Vuser3取H
第三次迭代 无论参数出现多少次 Vuser1取C Vuser2取F Vuser3取I

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

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不会重新抽取数据

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值