首先搞清楚了几个概念:
1.Update value on
--Each Occurrence:只要发现该参数就重新取值(用于各处引用参数都不相关时)
--Each iteration:每次反复都要取新值(各个并发会共享同一个值,用于多次引用参数且相关的情况)
--Once:在所有的反复中都使用同一个值(仅在场景初始化时产生一次,在一个场景中的所有并发和所有反复的值都相同)
2.Select Next Row
方法可以是:连续的、随机的、唯一的、或者与其它
参数表的相同行。
--顺序(Sequential):该方法顺序地给虚拟用户分配参数值。如果正在
运行的虚拟用户访问数据表的时候,它会取到下一行中可用的数据。
--随机(Random):该方法在每次迭代的时候会从数据表中取随机数
--唯一(UNIQUE):Unique方法分配一个唯一的有顺序的值给每个虚拟用户的参数。
--其它参数表的相同行(Same Line As)该方法从和以前定义过的参数中的同样的一行分配数据。你必须指定包含有该数据的列。在下拉列表中会出现定义过的所有参数列表。注意:至少其中的一个参数必须是Sequential、Random或者Unique。
--使用种子取随机顺序(Use Random Sequence with Seed):如果从Loadrunner的控制器来运行scenario,你可以指定一个种子数值用于随机顺序。每一个种子数值在测试执行的时候代表了一个随机数的顺序。无论你何时使用这个种子数值,在scenario中同样的数据顺序就被分配给虚拟用户。如果在测试执行的时候发现了一个问题并且企图使用同样的随机数序列来重复测试,那么,你就可以启动这个功能(可选项)。
3.唯一参数值的分配方式
场景初始化时会根据设置为每个VUser预先分配多个参数值,已确保不会重复。
===============================================================
select next row 和 update value on 不同组合设置
select next row = sequential,Update Value on = each iteration
说明:在某次循环中所有用户取值相同。所有用户第一次循环取第一行的值,第二次循环取第二行的值。
select next row = sequential,Update Value on = each occurrence
说明:在某次循环中或者脚本中使用参数的地方,所有用户取值相同。脚本中出现使用参数的话,参数值就更新一次,循环一次再更新一次。
select next row = sequential,Update Value on = once
说明:在所有的循环中所有用户取值相同,所有的用户所有的循环中,只用一个值。
select next row = unique,Update Value on = each iteration
说明:若选择手工自配参数,那LR按照每用户几个参数先分配参数,然后进行循环。
select next row = unique,Update Value on = each occurrence
说明:只能手工分配用户,给每个用户分配好X个参数后,在脚本中有参数的地方,就使用已经分配好的X个参数。
select next row = unique,Update Value on = once
说明:按照用户数分配给每个用户分配一个参数而已。以后的循环这个用户就使用这一个参数。