脚本优化-参数化之Parameter List参数取值
by:授客 QQ:1033553122
参数取值选项
Select next row
Update value on
以上两个选项是改变参数化取值的关键选项。
Select
next row包含如下选项:
Sequential:顺序选择
Random:随机取值
Unique:唯一值
Update
value on包含以下选项:
Each
iteration:每次迭代更新。
Each
occurrence:每次取值更新
Once:只更新一次
1
Sequential+Each iteration取值
这种取值是按顺序的,即按照Parameter
List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Each
iteration是基于Run-timesettings->Run
Logic中的迭代次数完成记录变化操作的。
例子:
Action3()
{
lr_eval_string("{NewParam}");
return
0;
}
迭代次数1:NewParam取值
甲
迭代次数5:NewParam取值
甲|乙|丙|丁|戊
迭代次数6:NewParam取值
甲|乙|丙|丁|戊|甲
注意:Update on value on Each
iteration时,只有开始了新的一次迭代,也就是说回放日志中出现了Starting
iteration才会触发记录变化,否则取值内容均不变化
例如:迭代次数为2
Action3()
{
for (int
i=0;i<2;i++)
{
lr_eval_string("{NewParam}");
}
return 0;
}
NewParam取值
甲甲乙乙
2
Sequential+Each occrrence取值
按顺序取值,即按照Parameter
List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Each
occrrence只要取了一次参数值,参数值就变化,取下一个参数值
例子:
Action3()
{
lr_eval_string("{NewParam}");
lr_eval_string("{NewParam}");
return 0;
}
如果迭代次数
1:NewParam取值
甲|乙
如果迭代次数
2:NewParam取值
甲|乙|丙|丁
3
Sequential+Once取值
按顺序取值,即按照Parameter
List中记录的先后顺序从上往下取值,当记录取完后,再重新从记录头开始取值,而Once针对整个脚本来说,只要取了一次参数值,参数值就不再变化了
Action3()
{
lr_eval_string("{NewParam}");
return 0;
}
无管迭代多少次,或者for循环,NewParam取值都是甲
4
Random+Each iteration取值
VuGen会从参数列表中随机取出一条记录,其取值的次数受到Update
value on选项的限制。
Random+Each
iteration:每当一次新的Starting
iteration开始,重新从参数列表中取一次随机值。
5
Random+Each occurrence
每当取一次该参数值,从参数列表中重新取一次随机值
6
Random+Once
当第一次取到随机内容后,再不更新记录。
7
Unique取值
一种更高级的顺序取值,强调取值的唯一性,但是违反了该规则也能继续运行,VuGen提供了When
out of values选项来处理非唯一的情况【当且仅当Update
value on Each iteration,Update
value on Each occurrence, When out of values才可以用】
其中,update
value on和上面的意思一样,不再赘述
When
out of values
1)Abort
Vuser
当参加参数取值超出参数表记录的条数时,忽略用户脚本,停止运行脚本
2)Continue
in a cyclic manner
当参数取值超出参数表记录时,使用循环扫描的方式
3)Continue
with last value
当参数取值超出参数表记录时,使用参数表中的最后一个值
列子:
Action3()
{
lr_eval_string("{NewParam}");
return
0;
}
迭代6次
小技巧:有时候,需要手工将参数的值下移一位(不管是不是Update
value on Each iteration),怎么办?使用lr_advance_param()函数来解决这个问题,
例子:前面脚本的参数{NewParam},Sequential+Each
iteration,使用脚本:
lr_eval_string(“{Newparam}”);
lr_eval_string(“{Newparam}”);
运行结果
甲|甲
lr_eval_string(“{Newparam}”);
lr_advance_param(“Newparam”);
lr_eval_string(“{Newparam}”);
运行结果
甲|乙
阅读下篇: