参数化就是使用指定数据源中的值来替换脚本录制生成的语句中的参数
一、参数化的必要性
(1)所有用户都输入相同的数据,不能体现出真实的业务环境
(2)存在缓存,不能体现出真正的性能
(3)有些系统禁制一个用户多次登录,也就是说严重到无法测试的地步了
二、取值策略
(1)如何取值
①顺序(Sequential):按照参数化的数据顺序,每次一行一行的来取
②随机(Random):参数化中的数据,每次随机的丛中抽取数据
③唯一(Unique):为每个vuser分配与其他vuser不同的数据
(2)何时取值
①每次迭代(Each iteration) :每次开始新迭代时更新一次参数
②每次出现(Each occurrence):在脚本中的每个参数出现位置都使用新的值
③只取一次(once):在场景运行期间每个vuser仅更新参数值一次
三、九种策略取值示例
题目一:某参数现有备份数据a1,a2,a3...a30;Action中实现3次for循环;脚本迭代2次
init | action | action | end | |||||
参数化1 | 参数化2 | 参数化3 | 参数化1 | 参数化2 | 参数化3 | |||
顺序+每次迭代 | a1 | a1 | a1 | a2 | a2 | a2 | ||
唯一+每次迭代 | a1 | a1 | a1 | a2 | a2 | a2 | ||
随机+每次迭代 | a8 | a8 | a8 | a4 | a4 | a4 | ||
顺序+每次遇到 | a1 | a2 | a3 | a4 | a5 | a6 | ||
唯一+每次遇到 | a1 | a2 | a3 | a4 | a5 | a6 | ||
随机+每次遇到 | a2 | a5 | a6 | a3 | a1 | a8 | ||
顺序+一次 | a1 | a1 | a1 | a1 | a1 | a1 | ||
唯一+一次 | a1 | a1 | a1 | a1 | a1 | a1 | ||
随机+一次 | a6 | a6 | a6 | a6 | a6 | a6 |
题目二:某参数现有备份数据a1,a2,a3...a30;脚本迭代4次;3个用户
init | action1 | action2 | action3 | action4 | end | ||
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 | |||
3.随机+每次迭代 | |||||||
VU1 | a5 | a4 | a2 | a1 | |||
VU2 | a2 | a5 | a8 | a28 | |||
VU3 | a6 | a12 | a22 | a21 | |||
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 | a5 | a4 | a2 | a1 | |||
VU2 | a2 | a5 | a8 | a28 | |||
VU3 | a6 | a12 | a22 | a21 | |||
7.顺序+一次 (每个VU取值一样,都从第一个开始) | |||||||
VU1 | a1 | a1 | a1 | a1 | |||
VU2 | a1 | a1 | a1 | a1 | |||
VU3 | a1 | a1 | a1 | a1 | |||
8.唯一+一次(从第一个开始,每个VU唯一向下取值,每个VU取值后不变) | |||||||
VU1 | a1 | a1 | a1 | a1 | |||
VU2 | a2 | a2 | a2 | a2 | |||
VU3 | a3 | a3 | a3 | a3 | |||
9.随机+一次 | |||||||
VU1 | a5 | a5 | a5 | a5 | |||
VU2 | a23 | a23 | a23 | a23 | |||
VU3 | a14 | a14 | a14 | a14 | |||
10.唯一+每次迭代(块大小为6) | |||||||
VU1 | a1 | a2 | a3 | a4 | |||
VU2 | a7 | a8 | a9 | a10 | |||
VU3 | a13 | a14 | a15 | a16 |
四、设置loadrunner参数化方法
(1)在脚本中选择需要进行参数化的数据,右击选择
(2)设置变量名后点击ok
(3) 右击脚本变量名处,选择变量设置
(4)点击红框处增加参数化数据,注意最后一行要为空,不然取不到值a4
(5)在此处设置参数化取值策略
(6)取值选择“唯一”时,才能设置此处的取值策略
allocate _____values for each Vuser即分配块大小