【性能工具】LoadRunner参数化详解

2022-03-25 13:50:05 浏览数 (2)

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

对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

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

参数化方法:

........

web_submit_form("Login.ashx",

"Snapshot=t3.inf",

ITEMDATA,

"Name=UserName", "Value=chongshi", ENDITEM,

"Name=Password", "Value=123456", ENDITEM,

"Name=VerifyCode", "Value=", ENDITEM,

"Name=auto", "Value=<OFF>", ENDITEM,

EXTRARES,

......

方法一,右键---【Replace with a new parameter】

方法二,菜单【insert】----【new Parameter…】

0 人点赞