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. PHP学习笔记10-图片加水印

    先找好一张图片,更名为face.jpeg,创建watermark.php: <?php /** * Created by PhpStorm. * User: Administrator * Da ...

  2. (Problem 47)Distinct primes factors

    The first two consecutive numbers to have two distinct prime factors are: 14 = 2  7 15 = 3  5 The fi ...

  3. linux分区工具fdisk的使用

    fdisk是linux下的一块分区工具,使用简单方便,由于是对系统进行修改,需要root权限. 常用参数如下: fdisk  -l : 列出所有的硬盘信息 直接传入设备名称可进入对该硬盘分区.例如,f ...

  4. Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'

    @Configuration public class HttpSessionConfig { @Bean public static ConfigureRedisAction configureRe ...

  5. vs2010 调试中监视变量

    在msdn中写了如何查看调试的数据,网址: http://msdn.microsoft.com/zh-cn/library/vstudio/esta7c62(v=vs.100).aspx Visual ...

  6. 如何用 Swift 语言构建一个自定控件

    (via:破船之家,原文:How To Make a Custom Control in Swift)   用户界面控件是所有应用程序重要的组成部分之一.它们以图形组件的方式呈现给用户,用户可以通过它 ...

  7. javascript 简单实现对两个数组相似度的检验

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. java -- 轻量级锁

    在了解轻量级锁之前,首先要知道什么是CAS CAS--Compare And Swap 比较并交换--通过比较传入的旧值和原内存位置中的值比较,来决定是不是要更新数据. CAS的语义是“我认为V的值应 ...

  9. {key}面向对象程序设计-C++ polymorphism 【第十三次上课笔记】

    Peronal Link: http://segmentfault.com/a/1190000002464822 这节课讲了本门课程 面向对象程序设计中最为重要的一个部分 - 多态 /******** ...

  10. (Problem 14)Longest Collatz sequence

    The following iterative sequence is defined for the set of positive integers: n n/2 (n is even) n 3n ...