loadrunner参数化总结
Select next row:Sequential,Rondom,Unique
Update value on:Each iteration,Each occurrence,Once
下面分别对这两种取值情况组合介绍
一、Sequential与Update value on各个选项的组合情况:
1.Sequential+Each iteration
说明:此组合是在每次迭代时,顺序循环取值,即迭代次数超过参数个数时,循环取值
1.当此组合放在vuser_init函数中时,取Action第一次迭代的值
2.当此组合放在Action函数中是,取值为顺序取值(fromFirst->toLast->fromfirst),可以从ReplayLog中,以“Starting iteration”
为标志
3.当此组合放在vuser_end函数中时,取Action最后一次迭代的值
总结:vuser_int函数包含在Action的第一次迭代中,而vuser_end函数包含在Action最后一次迭代中,此组合只受迭代的影响。
2、Sequential+Each occurrence
说明:此组合是在每次发生参数取值时,就会更新参数值,同样是顺序取值。
此组合的特点是取值与迭代无关,不管是在vuser_init(),Action(),vuser_end()中,只要发生取值,就会从参数列表中顺序循环取
值。
3、Sequential+Once
说明:这种组合比较简单,对于整个脚本来说参数值只取一次,再也不会更新,且与脚本迭代无关。
二、Random与Update value on各个选项的组合情况:
1.Random+Each iteration
说明:每当一次新的迭代开始(以Starting iteration为标志),从参数列表中取一次随机值。
总结:与“Sequential+Each iteration”这中情况相同,vuser_int函数包含在Action的第一次迭代中,而vuser_end函数包含在Action最后一次迭代中,只受迭代的影响。
唯一的不同点:每次取值方式不同。
2.Random+Each occurence
说明:每当取一次参数值时,从参数列表中取一次随机值。
总结:取值情况与“Sequential+Each occurrence”类似,
唯一不同点:此组合每次取值方式是随机从参数列表中读取的,而前者每次取值是顺序循环的方式读取值。
3.Random+Once
说明:当第一次取到值时,再也不更新记录
总结:与“Sequential+Once”类似,唯一不同的是取值方式不同。
三、Unique与Update value on各个选项的组合情况:
说明:1.Unique取值是一种类似于Sequential的顺序取值方式
不同点:Unique强调的是取值的唯一性,即当取值遍历完参数列表中的数据时,默认将终止vuser
2.通过When out of values选项可以设置vugen对vuser超出参数列表边界时的处理方式:
1.Abort Vuser:默认是此模式,当参数取值超出参数表记录的条数时,中止当前vuser
2.Continue in a cyclic manner:此方式与“Sequential”完全相同。
3.Continue with last value:当参数取值超出参数表记录的条数时,使用参数列表中最后一个值。
1.Unique+Each Iteration
设置了run上的迭代次数后,按照纪录顺序读取,当纪录超出列表后,执行when out of values策略
2.Unique+Each occurrence
每当参数取值时,顺序读取参数纪录,当纪录超出列表后,执行when out of values策略
3.Unique+Once
第一次取值后,一直使用该记录
到这里就把Select next row与Update value on中的各选项组合介绍完毕,在实际应用中可能这些组合还是无法满足我们对参数取值,下面
介绍两个常用函数,手工将参数值下移一位,以Sequential+Each iteration为例。
1.lr_advance_param()
参数列表name中,顺序存储A,B,C,D四个数据,如果想参数在第一次Action迭代中,取得A值后,紧接取得B值,显然依靠之前的9种
组合无法完成,接下来以代码为例,讲解lr_advance_param()的使用。
代码:Action()
{
lr_eval_string("{name}"); //取值为A
lr_advance_param("name"); //Next row for parameter name,将参数取值下移一位
lr_eval_string("{name}"); //取值为B
return 0;
}
2.lr_next_row()
代码:Action()
{
lr_eval_string("{name}"); //取值为A
lr_advance_param("name.dat"); //Next row for parameter name,将参数取值下移一位
lr_eval_string("{name}"); //取值为B
return 0;
}
总结:两个函数主要区别在于前者在函数内的参数值是参数名称,后者写的是参数文件名。
loadrunner参数化总结的更多相关文章
- Loadrunner参数化连接oracle、mysql数据源报错及解决办法
Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64, 两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...
- LoadRunner参数化MySQL
准备:安装[msql-ODBC驱动] 一.配置数据源 1.Win7,打开控制面板-系统和安全-管理工具,点击“数据源(ODBC)”. 打开数据源(ODBC),在用户DSN选项卡中点击“添加”按钮,弹出 ...
- [Loadrunner参数化]一个文件输两列参数的取值
关于LoadRunner参数化的内容,在脚本开发中属于非常重要的一个知识点.关于这部分知识,在书上和网上到处都能找到,本篇只讲一种特殊情况:一个参数化文件为File类型,有多列值,如何进行参数化取值. ...
- LoadRunner参数化&关联
我们用 HTTP 协议做脚本,要注意的是,不同协议的函数是不一样的,假如换 websocket 协议,关联函数就要用其他的 参数化 原理 1.什么叫参数化 把脚本内一个写死的值,去一个数组内取值,进行 ...
- Loadrunner参数化如何在记事本中将参数值显示超过100个参数值
Loadrunner参数化如何在记事本中将参数值显示超过100个参数值 1.loadrunner的参数值没有最大的限度, 可以修改C:\Program Files\HP\LoadRunner\conf ...
- Loadrunner参数化逗号报错解决方法
Loadrunner参数化逗号报错解决方法 介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...
- LoadRunner参数化取值与连接数据库
LoadRunner参数化取值与连接数据库 LoadRunner在使用参数化的时候,通常都是需要准备大数据量的,也因此LoadRunner提供两种参数化取值方式,一种是手动编辑,另一种就是通过连接 ...
- LoadRunner 参数化之 连接数据库进行参数化
LoadRunner 参数化之 连接数据库进行参数化 Loadrunner(简称“LR”)对性能测试的脚本进行参数化时,由于数据量偏大,大家往往都会把数据录入到数据库表里,然后关联到LR,本文将详细介 ...
- LoadRunner参数化时的各个选项说明
LoadRunner参数化时的各个选项说明 分类: LoadRunner 2009-03-27 09:32 6294人阅读 评论(1) 收藏 举报 loadrunnerrandomgeneratore ...
- LoadRunner参数化详解
LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又 ...
随机推荐
- codeforces 623A. Graph and String 构造
题目链接 给出一个图, 每个节点只有三种情况, a,b, c. a能和a, b连边, b能和a, b, c,连边, c能和b, c连边, 且无重边以及自环.给出初始的连边情况, 判断这个图是否满足条件 ...
- C语言循环小技巧
写代码,有两类追求,一种是追求实用(Coder),一种是追求代码艺术(Artist) 我是那种追实用追腻了,偶然追一下艺术(就是偶然和艺术有一腿)的那种Coder 很多人,已经习惯了for(i=0; ...
- 经验总结:按需加载JS和css
项目中做过这样的事情:所有页面都通过SSI指令 include这样一份public-js.shtml, 用来引入涉及到的js(包括公共的脚本 验证插件 自定义组件等),但是一些没有交互效果的页面根本不 ...
- Qt 学习 之 二进制文件读写
在上一章中,我们介绍了有关QFile和QFileInfo两个类的使用.我们提到,QIODevice提供了read().readLine()等基本的操作.同时,Qt 还提供了更高一级的操作:用于二进制的 ...
- java线程中的sleep/wait/notify/yield/interrupt方法 整理
java线程中的sleep/wait/notify/yield/interrupt方法 sleep 该方法能够使当前线程休眠一段时间 休眠期间,不释放锁 休眠时间结束之后,进入可执行状态,加入到线程就 ...
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager 类,用 ...
- 深入探究VC —— 编译器cl.exe(2)
这一章节介绍的全是VC编译器选项,option参数是cl.exe的编译选项,是cl.exe命令行参数中最复杂.也是最常用的.下面介绍一些常用的编译选项: 1.代码生成有关 这些选项将影响编译完成后生成 ...
- Tomcat7 + JRebel6.3.0 + IntelliJ idea 热部署配置过程+错误分析
以前使用Tomcat的时候直接就可以热部署,现在换了一个使用Spring框架的项目突然就不能热部署了. 网上说在tomcat里conf/context.xml中加入 <Context antiJ ...
- SQL 表连接,内联、外联、全连
内连接,join 或 inner join 两个表中符合条件的集合 外连接,left join 或 right join 以left左边或right右边的表为数据集合行,根据条件,另一侧没有的数 ...
- Lua,Lua API,配置文件
想像一个场景:你的c程序须要有一个窗体,你想让用户能够自己定义窗体大小.方法非常多.比方使用环境变量,或键值对的文件. 无论如何,你须要解析它. 使用lua配置文件是个不错的选择. 首先,你能够定义例 ...