Loadrunner参数化详解(二)
依据(一)的案例,需要对ID,companyid 以及remitAmount进行参数化。但参数化的前提:ID为汇缴核定的自动生成的,companyid为对应的单位公积金帐号,remitAmount汇缴金额为前期核定的金额,在汇缴办理时也为自动获取,数值必须一致
参数化时要求:办理过的数据将流转至下一个业务点,无法再进行 使用,故参数化时要求保证参数的唯一性。
图一:顺序读取。
图二:随机替换
图三:唯一:
参数表中select next row和update value on的设置
LR的参数的取值,和select next row和update value on的设置都有密不可分的关系。 下表给出了select next row和update value on不同的设置,对于LR的参数取值的结果将不同,给出了详细的描述。
Select next row |
Update Value on |
实际运行结果 |
sequential |
each iteration |
在某次循环中所有用户取值相同。 所有用户第一次循环取第一行值,第二次循环取第二行值 |
|
each occurrence |
在某次循环中或者脚本中使用参数的地方,所有用户取值相同。 脚本中出现要使用参数的话,参数值就更新一次,循环一次值再更新一次。 |
|
once |
在所有的循环中所有用户取值相同。 所有的用户所有的循环中,只用一个值(即参数中的第一行值) |
random |
each iteration |
不同的用户,在不同的循环次数中,随机取值 |
|
each occurrence |
不同的用户,脚本中出现要使用参数的话,随机取值一次,循环一次再随机取值一次 |
|
once |
不同的用户,不管循环多少次,只随机取值一次。 |
unique |
each iteration |
若选择手工自配参数,那LR按照每用户几个参数先分配参数,然后进行循环。 若选择自动分配参数: Controller中edit schedule中run until comletion:按照循环次数先分配第一个VU(例如设置的循环次数为3,那分配给第一个VU 3个参数值),然后接下来的3个参数值分配给第二个VU,依次类推…... Controller中edit schedule中run for:若选择自动分配,LR将按照用户数均分参数,剩余的参数不使用。 |
|
each occurrence |
只能手工分配用户,给每个用户分配好X个参数后,在脚本中有参数的地方,就使用已经分配好的X个参数。 |
|
once |
按照用户数分配给每个用户分配一个参数而已。以后的循环这个用户就使用这一个参数 |
使用参数化输入设置10个并发用户循环1000次,第一个用户使用参数列表中的前1000个参数(第依次循环使用第一个参数、第二次循环使用第二个参数,依次类推)、第二个用户使用参数列表中的2001-3000个参数,依次类推。
LoadRunner进行参数化输入时,参数的属性有Select next row、Update value on两个项,其中Select next row属性包括三个选项: Update value on属性包括四个选项:Sequential、Random、Unique、四个选项。
首先搞清楚了几个概念:
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预先分配多个参数值,已确保不会重复。
使用选项:Allocate XXX values for each vuser