loadrunner 脚本优化-参数化之Parameter List参数取值

简介: loadrunner 脚本优化-参数化之Parameter List参数取值

脚本优化-参数化之Parameter List参数取值


 参数取值选项

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;

}

迭代次数1NewParam取值

迭代次数5NewParam取值||||

迭代次数6NewParam取值|||||

 

注意: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;

}

如果迭代次数1NewParam取值|

如果迭代次数2NewParam取值|||

 

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 iterationUpdate value on Each occurrence, When out of values才可以用】


 

其中,update value on和上面的意思一样,不再赘述

 

When out of values

1Abort Vuser

当参加参数取值超出参数表记录的条数时,忽略用户脚本,停止运行脚本

2Continue in a cyclic manner

当参数取值超出参数表记录时,使用循环扫描的方式

3Continue 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}”);

运行结果|

 

目录
相关文章
|
28天前
|
SQL 缓存 测试技术
一篇文章讲明白LoadRunner:参数化
一篇文章讲明白LoadRunner:参数化
51 0
|
1月前
|
存储 NoSQL Redis
Redis第四弹,Redis实现list时候做出的优化ziplist(压缩链表,元素少的情况),可更好的节省空间list——(内部编码:quicklist)Object encoding
Redis第四弹,Redis实现list时候做出的优化ziplist(压缩链表,元素少的情况),可更好的节省空间list——(内部编码:quicklist)Object encoding
|
2月前
四种解决”Arg list too long”参数列表过长的办法
这些方法都可以帮助你避免因参数列表过长而导致的错误。选择方法取决于具体情况和需求。
40 0
|
2月前
|
JavaScript
npm list -g --depth=0 命令中 --depth 参数讲解
npm list -g --depth=0 命令中 --depth 参数讲解
|
2月前
|
Java
Java【代码分享 11】yaml配置List和Map参数对象的配置信息及类文件实例分享(效仿GatewayDynamic+DynamicDataSource的注入方法)
Java【代码分享 11】yaml配置List和Map参数对象的配置信息及类文件实例分享(效仿GatewayDynamic+DynamicDataSource的注入方法)
151 0
|
2月前
|
SQL IDE Java
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
101 0
|
8月前
|
Java Python
java调用python脚本并传递参数list
java调用python脚本并传递参数list
|
9月前
|
C++
C++:模拟实现list及迭代器类模板优化方法
C++:模拟实现list及迭代器类模板优化方法
|
9月前
|
存储 JavaScript 前端开发
SAP UI5 OData 请求 url 中的参数 sap-value-list=none
SAP UI5 OData 请求 url 中的参数 sap-value-list=none
如何将 bapi_xbp_job_spoollist_read_20 的 TABLES 参数 SPOOL_LIST 本地导出成 Excel
如何将 bapi_xbp_job_spoollist_read_20 的 TABLES 参数 SPOOL_LIST 本地导出成 Excel