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参数化总结的更多相关文章

  1. Loadrunner参数化连接oracle、mysql数据源报错及解决办法

    Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...

  2. LoadRunner参数化MySQL

    准备:安装[msql-ODBC驱动] 一.配置数据源 1.Win7,打开控制面板-系统和安全-管理工具,点击“数据源(ODBC)”. 打开数据源(ODBC),在用户DSN选项卡中点击“添加”按钮,弹出 ...

  3. [Loadrunner参数化]一个文件输两列参数的取值

    关于LoadRunner参数化的内容,在脚本开发中属于非常重要的一个知识点.关于这部分知识,在书上和网上到处都能找到,本篇只讲一种特殊情况:一个参数化文件为File类型,有多列值,如何进行参数化取值. ...

  4. LoadRunner参数化&关联

    我们用 HTTP 协议做脚本,要注意的是,不同协议的函数是不一样的,假如换 websocket 协议,关联函数就要用其他的 参数化 原理 1.什么叫参数化 把脚本内一个写死的值,去一个数组内取值,进行 ...

  5. Loadrunner参数化如何在记事本中将参数值显示超过100个参数值

    Loadrunner参数化如何在记事本中将参数值显示超过100个参数值 1.loadrunner的参数值没有最大的限度, 可以修改C:\Program Files\HP\LoadRunner\conf ...

  6. Loadrunner参数化逗号报错解决方法

    Loadrunner参数化逗号报错解决方法     介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...

  7. LoadRunner参数化取值与连接数据库

    LoadRunner参数化取值与连接数据库   LoadRunner在使用参数化的时候,通常都是需要准备大数据量的,也因此LoadRunner提供两种参数化取值方式,一种是手动编辑,另一种就是通过连接 ...

  8. LoadRunner 参数化之 连接数据库进行参数化

    LoadRunner 参数化之 连接数据库进行参数化 Loadrunner(简称“LR”)对性能测试的脚本进行参数化时,由于数据量偏大,大家往往都会把数据录入到数据库表里,然后关联到LR,本文将详细介 ...

  9. LoadRunner参数化时的各个选项说明

    LoadRunner参数化时的各个选项说明 分类: LoadRunner 2009-03-27 09:32 6294人阅读 评论(1) 收藏 举报 loadrunnerrandomgeneratore ...

  10. LoadRunner参数化详解

    LoadRunner参数化详解 距离上次使用loadrunner 已经有一年多的时间了.初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又 ...

随机推荐

  1. 挺有意思的HBase日志+Splunk

    如题,转载自: http://hi.baidu.com/harry_lime/item/10cf2c174853c7ea39cb3042 如何模拟拔盘操作 Linux has a nifty way ...

  2. uva-11995 - I Can Guess the Data Structure!(栈,优先队列,队列,水题)

    11995 - I Can Guess the Data Structure! There is a bag-like data structure, supporting two operation ...

  3. epoll的LT和ET模式

    原理參考该博客 从man手冊中,得到ET和LT的详细描写叙述例如以下 EPOLL事件有两种模型: Edge Triggered (ET) Level Triggered (LT) 假如有这样一个样例: ...

  4. swift优秀学习博客

    http://www.00red.com/ http://www.cnblogs.com/kenshincui/  优秀的某博客,包含大量iOS的全面的总结 https://github.com/Co ...

  5. ThinkPHP - 博客获取列表信息

    得到数据: Array ( [0] => Array ( [id] => 5 [name] => PHP [pid] => 0 [sort] => 1 [blog] =& ...

  6. Visual Studio 2012中编写C程序

    换了win7系统后,突然发现VC++6.0不兼容了,我听说有的同学的行,反正我是不行. 那就用VS2012呗.... 我们来看看怎么用: 打开文件->新建->项目,新建一个项目 选择win ...

  7. [Swust OJ 465]--吴奶奶买鱼(0-1背包+dfs)

    题目链接:http://acm.swust.edu.cn/problem/465/ 还有一道题只是描述不一样,方法一模一样(http://acm.swust.edu.cn/problem/644/) ...

  8. xzzx

    创建包: CREATE OR REPLACE PACKAGE WYL_TEST_PKG_GGYW_XZZX IS -- Purpose : 公共业务-参保险种注销 --注销选择的险种,并将参保缴费信息 ...

  9. Python3.5.1 下使用HTMLParser报错

    pip 安装HTMLParser之后,import HTMLParser 使用的时候,报错"ImportError:Can't not find module markupbase" ...

  10. 17.1.1 How to Set Up Replication

    17.1.1 How to Set Up Replication 17.1.1.1 Setting the Replication Master Configuration 17.1.1.2 Sett ...