Loadrunner--参数化知识点及参数池策略

一、为何进行脚本参数化?
脚本在录制的时候,记录的参数都是常量值,这样,虚拟用户在执行同一个脚本,向服务器发送请求时,使用的都是同一个参数值,与实际不符。所以使用参数化技术。
二、参数化的逻辑?
对脚本中的常量进行参数化,让不同的VU在执行相同的脚本时,分别使用参数数据源中的不同数据来代替这些常量,从而达到模拟多用户真实使用系统的目的。
三、脚本参数化的步骤?
1.确定需要参数化的数据
2.准备数据
3.参数化
四、如何进行参数化?

1、把需要参数化的用户名选中,右击鼠标,选中replace with a parameter,如下图-44所示:

Loadrunner中参数化设置 - 王小白 - 王新宇的博客

图-1

2、把参数名称改为username,如下图-45所示:

Loadrunner中参数化设置 - 王小白 - 王新宇的博客

图-2

3、选中要参数化的密码,右击鼠标,选中replace with a parameter,如下图-46所示:

Loadrunner中参数化设置 - 王小白 - 王新宇的博客

图-3

4、把参数名称改为passwd,如下图-47所示:

Loadrunner中参数化设置 - 王小白 - 王新宇的博客

图-4

5、参数化的代码为下图-48所示:

Loadrunner中参数化设置 - 王小白 - 王新宇的博客

图-5

五、参数池策略

1.select next now(取值方式 ? who?)

(1)顺序:对于每个VU,都是从第一行开始,顺序(依次)向下取值--------每个VU取值序列相同
(2)唯一:对于每个VU,从第一行开始,唯一的依次向下取值--------每个VU取值序列不同
规律:如果是单用户,顺序和唯一的取值序列相同
(3)随机:每个VU都可随机取值,可重复
(4)和XX步调一致:和XX参数取值行相同
2.Update Value on(如何取? when?)
(1)每次迭代:每次脚本循环(Action)时更新参数值
(2)每次遇到:脚本运行时,只要遇到即更新参数值(每次遇到=每次迭代次数*n(n表示脚本Action中参数出现的次数))
规律:对于单用户,如果脚本中某参数只出现一次,每次迭代和每次遇到的取值序列相同
(3)只取一次:一次取值,从不改变
说明:Once整个过程不改变;Random:任意取值
(4)out of value(越界策略--参数池策略不够时unique)
<1>放弃VU:直接放弃该虚拟用户,会报错
<2>以循环的方式继续:循环从第一行开始
<3>以最后一个值继续:一直使用最后一个值

=================================================================================

参数池策略练习:
题目一:某参数现有备份数据a1,a2,a3...a30;Action中实现3次for循环;脚本迭代2次(不打开控制台),完成以下结果:
1.顺序+每次迭代:a1 a1 a1,a2 a2 a2
每次迭代时换值,每次迭代使用3次
2.唯一+每次迭代:a1 a1 a1,a2 a2 a2
单用户,顺序和唯一是一样的;迭代时换值
3.随机+每次迭代:a12 a12 a12,a9 a9 a9
每次迭代取随机值
4.顺序+每次遇到:a1 a2 a3,a4 a5 a6
只要遇到name就换值,从第一个开始
5.唯一+每次遇到:a1 a2 a3,a4 a5 a6
单用户,顺序和唯一是一样的;
考虑超过值时,关注block块大小
对于单用户,无需关注块大小,多用户(控制台)才考虑
改为:外循环5次(run-time setting),内循环10次(for循环)
要准备充足的数据
when out value:
1.Abort Vuser放弃VU:报告出错
Action.c(7): Error: Parameter 'name': No more unique values for this parameter in table 'name.dat'
[unique range is 1-30]. The Vuser is aborted according to "When Out Of Values" policy.
2.continue in a cyclic manner继续从头再来:不会出错,正常取值
3.continue with last value持续最后一个:结果正常,日志报错
Action.c(7): Error: Parameter 'name': No more unique values for this parameter in table 'name.dat'
[unique range is 1-30].The parameter continues with last value of the range according to "When Out Of Values" policy.
6.随机+每次遇到:a13 a19 a2,a27 a30 a4
一共遇到2*3=6次,随机取值
7.顺序+一次:a1 a1 a1,a1 a1 a1
8.唯一+一次:a1 a1 a1,a1 a1 a1
9.随机+一次:a8 a8 a8,a8 a8 a8
题目二:某参数现有备份数据a1,a2,a3...a30;脚本迭代4次;3个VU;完成以下结果:
1.顺序+每次迭代:<重要>
VU1:a1 a2 a3 a4;
VU2:a1 a2 a3 a4;
VU3:a1 a2 a3 a4;
2.唯一+每次迭代:(无特殊说明,块大小自动分配)<重要>
VU1:a1 a2 a3 a4;
VU2:a5 a6 a7 a8;
VU3:a9 a10 a11 a12;
从第一行开始取值,每个VU都不同;每个VU迭代4次,取值4次(默认块大小为4)
3.随机+每次迭代:<重要>
VU1:a11 a15 a3 a27;
VU2:a5 a10 a7 a22;
VU3:a21 a11 a15 a12;
4.顺序+每次遇到:
VU1:a1 a2 a3 a4;
VU2:a1 a2 a3 a4;
VU3:a1 a2 a3 a4;
5.唯一+每次遇到:(块大小为6)<重要>
VU1:a1 a2 a3 a4;
VU2:a7 a8 a9 a10;
VU3:a13 a14 a15 a16;
6.随机+每次遇到:
VU1:a9 a15 a3 a17;
VU2:a5 a17 a6 a22;
VU3:a21 a11 a2 a12;
7.顺序+一次:<重要>
VU1:a1 a1 a1 a1;
VU2:a1 a1 a1 a1;
VU3:a1 a1 a1 a1;
每个VU取值一样,都从第一个开始
8.唯一+一次:<重要>
VU1:a1 a1 a1 a1;
VU2:a2 a2 a2 a2;
VU3:a3 a3 a3 a3;
从第一个开始,每个VU唯一向下取值,每个VU取值后不变
9.随机+一次:<重要>
VU1:a4 a4 a4 a4;
VU2:a16 a16 a16 a16;
VU3:a9 a9 a9 a9;
10.唯一+每次迭代:(块大小为6)
VU1:a1 a2 a3 a4;
VU2:a7 a8 a9 a10;
VU3:a13 a14 a15 a16;

原文地址:https://www.cnblogs.com/wxinyu/p/7688087.html