LoadRunner参数化
参数化的定义及作用
定义:将脚本当中录制下来的特定值用变量替代,该变量值是变化的。
参数化解决数据不能重用的问题(如:数据保持唯一性,不能重复)。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1.业务考虑,不允许相同信息
2.真实模拟不同用户
3.真实反应服务器性能
模拟100个用户登录微博,100个相同的用户名相同的密码与100个不同的用户名不同的密码的区别?
先把需要用到的参数设计好,选择要替换的常量,然后右键选择使用已有的参数替换
对loadrunner自带的订票网站登录
先把参数建好,,会询问是否用现在的值替换参数表中的第一个值或者是保持参数表中的第一个值不变。
下面这种方法会自动读进曾经已经使用的数据(jojo),造成回放出错。
File类型参数
如果添加一列
用逗号分隔列,所以为2列
用Tab分隔列,所有为1列
用空格分隔列,所以为1列
隐藏或显示输出窗口:
参数值更新方式
3个值(a,b,c),选择迭代4次,即多出一次,看是如何取值的。
Action() { lr_output_message("第一个参数取值:%s",lr_eval_string("{paramtest}")); lr_output_message("第二个参数取值:%s",lr_eval_string("{paramtest}")); lr_output_message("第三个参数取值:%s",lr_eval_string("{paramtest}")); return 0; }
关于lr_output_message的作用,可以鼠标点到上面,按F1,自动弹出帮助
每次迭代
一次迭代过程中,相同参数值不发生变化,即只取一次值。每次迭代,是将所有的Action都执行。
每次迭代-顺序
从头开始按顺序取值,当值不够用时又从头开始。
每次迭代-随机
每次迭代-唯一
和每次迭代-顺序类似,从头开始按顺序取值,当值不够用时按照设置的方式处理。
此时可以自动分配,也可以自定义分配value数,(“每次发生-唯一”只能自定义分配value数)
当值不够用时,有3种情况,默认情况下,使用最后一个值继续;停止脚本;从头再来(类似每次迭代,顺序取值)
Error: Parameter 'paramtest': No more unique values for this parameter in table 'paramtest.dat' [unique range is 1-3].The parameter continues with last value of the range according to "When Out Of Values" policy.
默认自动分配
自定义分配,
运行结果依旧和上图一样,因为在vuser中,就只有一个vuser,单独一个用户分享所有参数值。
每次发生
每次发生,相同参数取不同值,也可以取相同值<随机或者唯一不够时
每次发生-顺序
和每次迭代-顺序类似,从头开始按顺序取值,当值不够用时又从头开始。
每次发生-随机
不一定从头开始按顺序取值,且值也可能相同。(无论参数多少)
每次发生-唯一
和每次迭代-顺序、每次迭代-唯一类似,从头开始按顺序取值,当值不够用时按照设置的方式处理。
此时自定义分配value数必填,(“每次迭代-唯一”可以自动分配,也可以自定义分配value数)
填入上面框中的数字无论为多少(1至X),在vuser中,运行结果都一样。(在虚拟用户脚本中只有一个用户,无论Allocate处填多少都无用,单独一个用户分享所有参数值)
完整Error信息:Error: Parameter 'paramtest': No more unique values for this parameter in table 'paramtest.dat' [unique range is 1-3].The parameter continues with last value of the range according to "When Out Of Values" policy.
填1或者任意值,在vug中,都是如下结果:
一次
只取一个值。
一次-顺序
只取第一个值。
始终第一个值
一次-随机
随机取一个值。
一次-唯一
只取第一个值。
(下面这种情况是冲突的,Unique是每个数据唯一,只使用一次,Once是只更新一次,但是只认Once,如果只有2个数据,迭代>2次,也不会报错,全部是用第一个数据。)
始终第一个值
