loadrunner参数化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
参数化的定义:使用指定的数据源中的值来替换脚本录制生成的语句中的参数。
对Vuser脚本进行参数化的好处:
1、减小脚本的大小
2、提供了使用不同的脚本的值执行脚本的能力
参数化涉及两个任务:
1、用参数替换Vuser脚本的常量值
2、为参数设置属性和数据源
“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的设置都有密不可分的关系。下表给出了select next row和update value on不同的设置,对于LR的参数取值的结果将不同,给出了详细的描述。
实例:
loadrunner并发迭代时参数取值问题
分类:测试工具[LoadRunner2011-01-02 15:01267人阅读评论(0)收藏举报
假设存在:
数据:A、B、C
虚拟用户:Vuser1、Vuser2、Vuser3
脚本中参数出现三次,脚本迭代三次
怎样取下一行数据?
Sequential:顺序,所有虚拟用户按照顺序读取数据表
Random:随机,所有虚拟用户随机形式读取数据表
Unique:唯一,所有虚拟用户每次各取一值(不重复)
什么时候访问数据表完成数据更新?
Each iteration:每次迭代以后
Each occurrence:每次出现参数
Once:每出现一个虚拟用户
实例:
顺序
Sequential + Each iteration
第一次迭代无论参数任何时候出现Vuser1、Vuser2、Vuser3 取A
第二次迭代无论参数任何时候出现Vuser1、Vuser2、Vuser3 取B
第三次迭代无论参数任何时候出现Vuser1、Vuser2、Vuser3 取C
Sequential + Each occurrence
第N次迭代参数第一次出现Vuser1、Vuser2、Vuser3 取A
第N次迭代参数第二次出现Vuser1、Vuser2、Vuser3 取B
第N次迭代参数第三次出现Vuser1、Vuser2、Vuser3 取C
Sequential + Once
第N次迭代无论参数任何时候出现Vuser1取A Vuser2取B Vuser3取C
随机
Random + Each iteration
第N次迭代无论遇到该参数多少次Vuser1都只取A,或者B,又或者C,本次迭代不再更新
第N次迭代无论遇到该参数多少次Vuser2都只取A,或者B,又或者C,本次迭代不再更新
第N次迭代无论遇到该参数多少次Vuser3都只取A,或者B,又或者C,本次迭代不再更新
在N+1次迭代,每个Vuser重新随机抽取数据
Random + Each occurrence
第N次迭代第一次遇到该参数Vuser1、Vuser2、Vuser3在A、B、C中随机抽取一个
第N次迭代第二次遇到该参数Vuser1、Vuser2、Vuser3重新在A、B、C中随机抽取一个第N次迭代第三次遇到该参数Vuser1、Vuser2、Vuser3重新在A、B、C中随机抽取一个在N+1次迭代,每个Vuser继续保持每遇到一次参数就重新抽取一次数据
Random + Once
第N次迭代无论遇到该参数多少次Vuser1都只取A,或者B,又或者C
第N次迭代无论遇到该参数多少次Vuser2都只取A,或者B,又或者C
第N次迭代无论遇到该参数多少次Vuser3都只取A,或者B,又或者C
在N+1次迭代,每个Vuser不会重新抽取数据
唯一
注意:使用该Unique类型必须注意数据表有足够多的数。
比如Controller 中设定20 个虚拟用户进行5 次循环,那么编号为1 的虚拟用户取前5个数,编号为2 的虚拟用户取6-10 的数,依次类推,这样数据表中至少要有100个数据,否则Controller 运行过程中会返回一个错误。
因此以下例子在数据表中加入数据D、E、F、G、H、I。
Unique + Each iteration
第一次迭代无论参数出现多少次Vuser1取A Vuser2取D Vuser3取G
第二次迭代无论参数出现多少次Vuser1取B Vuser2取E Vuser3取H
第三次迭代无论参数出现多少次Vuser1取C Vuser2取F Vuser3取I
Unique + Each occurrence
第一次迭代第一次出现该参数Vuser1取A Vuser2取D Vuser3取G
第一次迭代第二次出现该参数Vuser1取B Vuser2取E Vuser3取H
第一次迭代第三次出现该参数Vuser1取C Vuser2取F Vuser3取I
Unique + Once
无论进行多少次迭代无论参数任何时候出现Vuser1取A Vuser2取B Vuser3取C
数据D、E、F、G、H、I不取
分享到: