LoadRunner(三):参数化

时间:2024-03-28 21:03:10

前面文章我们介绍过,参数化是将变量代替常量,更加真实的模拟用户操作。接下来我们介绍LoadRunner实现参数化的3种常用的方法

1.Random Number:使用随机数

1.选中待参数化的值,比如用户名,右键进行如下操作:

LoadRunner(三):参数化

2.设置参数名和参数类型

LoadRunner(三):参数化

3.点击Properties之后弹出如下对话框:

LoadRunner(三):参数化

参数说明:

min:最小值

max:最大值

Number:显示格式,比如%08lu:表示总共8位数,不够的话前面补0

Each iteration:按每次迭代取变化参数值(脚本在当前迭代里,参数不论出现多少次,值固定)

Each occurrence :按每次出现变化参数值(脚本迭代运行中,参数每出现一次值变化一次,与迭代次数无关)

Once:迭代过程中,参数值始终保持第一次取的值

 

4.点击close,点击OK后弹出对话框是否将脚本中选择的字符串全部替换,根据实际需要操作即可:

LoadRunner(三):参数化

选择Yes后的结果:

LoadRunner(三):参数化

选择No的结果,只有选中的值被替换:

LoadRunner(三):参数化

5.配置log:注意此时要确认一下Runtime Setting-->Log,必须按如下选项配置,否则参数化后的值看不到

LoadRunner(三):参数化

 

6.回放脚本成功后查找到参数化使用的值:

LoadRunner(三):参数化

打开浏览器用上面的用户名和密码能够登陆成功说明执行成功。

 

 

File:使用文件

1.构造如下数据文件,文件名为NewParam.dat:

LoadRunner(三):参数化

2.找到待参数化的值,比如用户名,右键进行如下操作:

LoadRunner(三):参数化

3.设置参数名,参数类型为file,点击Properties

LoadRunner(三):参数化

4.设置参数文件相关信息,注意路径不要有中文

LoadRunner(三):参数化

Select next row有三种选项:

LoadRunner(三):参数化

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

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

Unique :唯一的数,保证多线程时每个线程取到的值是不一样的。注意:使用该类型必须注意数据表有足够多的数。比如:Controller 中设定20 个虚拟用户进行5 次循环,那么编号为1 的虚拟用户取前5个数,编号为2 的虚拟用户取6-10 的数,依次类推,这样数据表中至少要有100个数据,否则Controller 运行过程中会返回一个错误。

Update value on也有三个选项,同前面介绍的是一样的:

LoadRunner(三):参数化

 

5.配置完成后点击close,ok。至此配置完成

6.开始回放

LoadRunner(三):参数化

6.查看回放过程中浏览器访问的页面

LoadRunner(三):参数化

LoadRunner(三):参数化

8.回放时能弹出这样的窗口,可以看到详细的错误信息:

LoadRunner(三):参数化

 

重点说明Select next row为Unique的情况:

文件中数据范围:1-10

区段:5

2个线程

线程1:用1-5

线程2:用6-10

 

6次迭代,值不够了,3种选择:

1 abort 退出

2 last value

3 从头开始

 

选择了unique之后后面两项变成了可选状态,如下:

LoadRunner(三):参数化

When out of values中3种选择和前面的是一样的,不再赘述

Allocate Vuser values in the Controller:

--Automatically allocate block size:自动根据数据文件中数据个数,以及Runtime Setting->Run Logic中设置的线程数平均分配

--Allocate:手动分配,每个线程中数据的间隔

 

Unique Number:使用唯一值

1.找到待参数化的值,比如用户名,右键进行如下操作:

​​​​​​​LoadRunner(三):参数化

 

2.设置参数名,参数类型为Unique Number,点击Properties

LoadRunner(三):参数化

3.设置区段和超限时如何处理

LoadRunner(三):参数化

Number:

--Start:起始值

--Block size per Vuser:当使用controller并发测试时,每个线程或进程的取值间隔,举例:

情况1:1个线程

区段:10

1个线程,迭代1次:1

1个线程,迭代5次:1,2,3,4,5

1个线程,迭代10次:1,2,3,4,5,...10

1个线程,迭代11次:1,2,3,4,5,...10

第11次看设置

abort:退出

cycle manner:从1开始

last:10

 

情况2:2个线程

区段:10

2个线程,各迭代1次:   线程1:1    线程2:11

2个线程,各迭代5次:   线程1:1-5  线程2:11-15

2个线程,各迭代10次:  线程1:1-10  线程2:11-20

2个线程,各迭代11次:  线程1:1-10  线程2:11-20

第11次看设置

abort:退出

cycle manner:线程1从1开始取,线程2从11开始取

last:线程1只取10,线程2只取11

 

When out of values:设置超限时如何处理

--Abort Vuser:脚本中止

--Continue in a cyclic manner:循环模式,从开头重新开始

--Continue with last value:最后一个值,也就是后续迭代参数值与上一次迭代取值相同