1. 操作说明
1. LoadRunner的参数设置
菜单栏选择“Design”–>“Parameters”–>“Parameters List”,或者点击“Ctrl+L”,弹出参数列表。
2. LoadRunner的迭代次数设置
菜单栏选择“Replay”–>“Run-time Settings”–>“General”–>“Run Logic”–>“Iteration Count”下的“Number of Iterations”,或者点击“F4”,弹出“运行时设置”。
2. 操作目的
在参数列表里面新建的参数有两个选项:“Select next row”和“Update value on”。备注:参数类型选择的是“File”。
1. Select next row(选择下一行)
顺序(Sequential):按照参数化的数据顺序,一个个的来取。
随机(Random):参数化中的数据,每次随机的从中抽取数据。
唯一(Unique):为每个虚拟用户分配一条唯一的数据。
2. Update value on(更新时的值)
每次迭代(Each iteration):每次迭代时取新的值。
每次出现(Each Occurrence):每次参数化时取新的值,这里强调前后两次取值不能相同。
只取一次(once):参数话中的数据,一条数据只能抽取一次
但是参数到底是怎么变化的,还是不太懂,所以就需要一个个地试,看结果如何再做分析。当我们的参数比较多的时候,还需要设置迭代次数,也需要思考,当选定了特定的参数方式时,有没有最大迭代限制。
3. 操作步骤
Select next row | Update value on |
---|---|
Sequential | Each iteration |
Random | Each Occurrence |
Unique | once |
组合方式有3*3=9种,所以我们会对每一个组合都执行一遍。
备注:本来打算9种组合都执行一遍,但是有点多,而且做完前面的,其它的都懂了,就不重复了,哈哈
1. 在Action里面写一行代码
lr_output_message("第%s次取值:%s"), lr_eval_string("i"), lr_eval_string("param"));
作用是输出日志。
2. 自定义两个参数
- id,选择的类型为“Unique Number”,更新时每次出现“Each occurrence”
- paratype,里面添加15行数据,就从“1~15吧”,怕麻烦的可以点“Edit with Notepad”,选择下一行为按顺序“Sequential”,更新时每次迭代“Each iteration”。
3. 替换内容为参数
4. 设置迭代次数
分别为15次,16次,100次和101次。
5. 查看结果
- 15次迭代运行结果
- 16次迭代运行结果
- 100次迭代运行结果,在id参数设置时,选择的“Block size per Vuser”的值是100,而且“Update value”的值是每次出现“Each occurrence”,所以最多迭代100次,就不能再迭代了,因为再迭代的话,就超出范围了。
- 101次迭代运行结果
报错内容如下,意思是“超出范围”,因为我们定义了块大小为100,而且只能每次出现,当迭代到101次时,明显就没有值能取到了:
Action.c(3): Error: Parameter 'id': All values in unique block already used. Block size is 100. The parameter continues with last value of the range according to "When Out Of Values" policy.
6. 改变id参数的取值方式
把id参数的“Update value”分别改为“Each iteration”和“Once”。
-
改成“Each iteration”时迭代结果,前面不变
和上面那个一样的错误,日志输出都是一样的,就不截图了,把错误贴一下:
Error: Parameter 'id': All values in unique block already used. Block size is 100. The parameter continues with last value of the range according to "When Out Of Values" policy.
-
改成“Once”时迭代结果,前面不变,不报错,但是看日志就知道这种方式不好,一直用同一个数据,测不出程序错误
7. 设置paratype参数的“Select next row”为“Random”,“Update value on”为“Each iteration”;设置id参数的“Update value”为“Each Occurrence”;迭代次数设为15次
- id的变化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15(15个数) - paratype的变化
7 12 3 9 11 6 11 5 14 12 8 17 1 7 12(15个数)
这是因为我们设置了下一行出现方式为随机“Random”,所以在参数的值列表{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}里随机产生一个数。
8. 再把paratype参数的“Select next row”为“Unique”,其它都不变
- id和paratype的变化一致
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
4. 总结
1. Select next row(选择下一行)
顺序(Sequential):顺序取值,如果要迭代,则重复一遍,类似酷狗音乐的“循环列表”。
随机(Random):随机取值,可能有重复,类似掷骰子。
唯一(Unique):从第一个数取到最后一个数,无重复,类似酷狗音乐的“列表播放(好像现在没有这个le,可能是改成顺序播放了)”。
2. Update value on(更新时的值)
每次迭代(Each iteration):取完参数所有值后,还会迭代几次(看前面选择的是哪一项)。
每次出现(Each Occurrence):和每次迭代差不多,我也搞不太清楚(因为101次迭代这个也会报错,Each iteration也会报错,但是我选择的参数类型是“Unique number”,而且它显示的不是“Update value on”而是“Update value”)。
只取一次(once):只能取一次,取参数值的第一个元素。