LoadRunner中,参数化时Unique取值方式的理解

来源:互联网 发布:罗伯特戈登大学 知乎 编辑:程序博客网 时间:2024/05/01 13:39

在LoadRunner中进行参数化时,Parameter的取值设置有以下相关参数:

取值方式:

Sequence:顺序

Random:随机

Unique:唯一

改变(更新)取值的时机:

EachIteration:每次迭代

EachOccurrence:每次出现

Once:只改变一次

Unique的使用,理解起来相对困难些,此处重点讲解该取值方式。

 

当我们取值方式选为Unique,更新取值时机选为EachIteration时,还有一个选项可设置,那就是:allocate Vuser values in the controller:它有两个选项:1、automaticallyallocate block size;2、allocate _____values for each Vuser.因为我们选择了“每次迭代”更新取值的方式,所以可以指定是由系统自动分配Vuser的参数值数量,还是人为指定为每个Vuser分配的参数值数量。其实很多时候,参数化的数据量在长时间执行压力测试的时候,并不够用,我们通常会选择人为指定为每个Vuser分配参数值数量。那么这个数量如何确定呢?

 

业务场景举例:

1.      用户在10分钟内不能重复登录,否则断开该账号的所有登录连接;

2.      现在要评估大量用户成功登录后,查看个人资料,对系统造成的压力情况;

分析:录制的脚本包括登录和查看个人资料,且需保证10分钟内用户不会重复登录。需对登录用户的账号进行参数化处理,取值方式需使用unique,此处采用File来做参数化。假设File中usename的值有10000个,在执行场景时,设置的Vuser数为100个。

username值的分配方式:

迭代次数       Vuser数        每个Vuser分配的参数值数量

100             100           1*100;2*100;….;100*100      用到参数值总量:10000

99              100           1*99;2*99;….;100*99       用到参数值总量:9900

101             100           1*101;1*101;….;100*101      用到参数值总量:10100

(注:第3项的 *前是vuser的编号,*后是每个Vuser最多可以取多少个不同的值)

 

针对上述3中分配方式,在Vuser数和参数值总量固定的情况下,每个Vuser分配的参数值数量实际就是迭代次数。迭代次数小于或等于100时,参数值总量是够用的;迭代次数大于100时,参数值总量就不够用了,执行压力测试时就会报错,故我们需要保证参数值总量够用。那么该选项:2、allocate _____values for each Vuser的数值,必须小于等于100。(注:这个迭代次数的最大值:参数化值总量/Vuser数(整数部分))

 

假设上述选项,填写的是100,与之相关的最后一个相关选项的解释:

When outof values:

1、       中止:abort Vuser

2、       循环Vuser分配到的列表

3、       只循环最后一个列表项

假设选定2,当迭代次数达到100后,从第101次迭代开始,Vuser使用第1次迭代用过的取值,第102次迭代使用第2次迭代使用过的取值,依次类推;

假设选定3,当迭代次数达到100后,从第101次迭代开始,Vuser一直使用第100次迭代的取值。