代码改变世界

LoadRunner参数化

2012-01-04 15:18  田志良  阅读(1614)  评论(0编辑  收藏  举报

  参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数。
  对Vuser脚本进行参数化的好处:

  • 减小脚本的大小
  • 提供了使用不同的脚本的值执行脚本的能力

  参数化涉及两个任务:

  • 用参数替换Vuser脚本的常量值
  • 为参数设置属性和数据源

  “Select next row”定义的是如何选择下一行数据。该处有三个选项"Sequential","Random","Unique":

  • Sequential:顺序地向Vuser分配数据。
  • Random:当测试开始运行时,“随机”方法为每个Vuser分配一个数据表中的随机值。
  • Unique:为每一个Vuser的参数分配一个唯一的顺序值。在这种情况下必须确保表中的数据对所有的Vuser和它们的迭代来说是充足的。如果拥有20个Vuser并且要进行5次迭代,则测试者的表格中必须至少包含100个数值。

  “Update value on”定义的是什么时候更新数据值,备选项有每次迭代,每次出现和一次。

表  LoadRunner参数更新方法和数据分配

更新方法

数据分配方法

顺序

随机

唯一

每次迭代

对于每次迭代Vuser会从数据表中提取下一个值。

对于每次迭代,Vuser会从数据表中提取新的随机值。

对于每次迭代,Vuser会从数据表中提取下一个唯一值。

每次出现(仅数据文件)

参数每次出现时,Vuser将从数据表中提取下一个值,即使在同一次迭代中。

参数每次出现时,Vuser将从数据表中提取新的随机值,即使在同一迭代中。

参数每次出现时,Vuser将从数据表中提取新的唯一值,即使在同一迭代中。

一次

对于每一个Vuser,第一次迭代中分配的值将用于所有的后续迭代

第一次迭代中分配的随机值将用于该Vuser的所有迭代

第一次迭代中分配的唯一值将用于该Vuser的所有后续迭代

  如果LoadRunner的函数中某个参数不能直接使用LoadRunner参数,那么可以通过lr_eval_string进行转换取到参数的值。 下表给出了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

按照用户数分配给每个用户分配一个参数而已。以后的循环这个用户就使用这一个参数