一、为何进行脚本参数化?
脚本在录制的时候,记录的参数都是常量值,这样,虚拟用户在执行同一个脚本,向服务器发送请求时,使用的都是同一个参数值,与实际不符。所以使用参数化技术。
二、参数化的逻辑?
对脚本中的常量进行参数化,让不同的VU在执行相同的脚本时,分别使用参数数据源中的不同数据来代替这些常量,从而达到模拟多用户真实使用系统的目的。
三、脚本参数化的步骤?
1.确定需要参数化的数据
2.准备数据
3.参数化
四、如何进行参数化?

1、把需要参数化的用户名选中,右击鼠标,选中replace with a parameter,如下图-44所示:

图-1

2、把参数名称改为username,如下图-45所示:

图-2

3、选中要参数化的密码,右击鼠标,选中replace with a parameter,如下图-46所示:

图-3

4、把参数名称改为passwd,如下图-47所示:

图-4

5、参数化的代码为下图-48所示:

图-5

五、参数池策略

1.select next now(取值方式 ? who?)

(1)顺序:对于每个VU,都是从第一行开始,顺序(依次)向下取值--------每个VU取值序列相同
(2)唯一:对于每个VU,从第一行开始,唯一的依次向下取值--------每个VU取值序列不同
规律:如果是单用户,顺序和唯一的取值序列相同
(3)随机:每个VU都可随机取值,可重复
(4)和XX步调一致:和XX参数取值行相同
2.Update Value on(如何取? when?)
(1)每次迭代:每次脚本循环(Action)时更新参数值
(2)每次遇到:脚本运行时,只要遇到即更新参数值(每次遇到=每次迭代次数*n(n表示脚本Action中参数出现的次数))
规律:对于单用户,如果脚本中某参数只出现一次,每次迭代和每次遇到的取值序列相同
(3)只取一次:一次取值,从不改变
说明:Once整个过程不改变;Random:任意取值
(4)out of value(越界策略--参数池策略不够时unique)
<1>放弃VU:直接放弃该虚拟用户,会报错
<2>以循环的方式继续:循环从第一行开始
<3>以最后一个值继续:一直使用最后一个值

=================================================================================

参数池策略练习:
题目一:某参数现有备份数据a1,a2,a3...a30;Action中实现3次for循环;脚本迭代2次(不打开控制台),完成以下结果:
1.顺序+每次迭代:a1
a1 a1,a2 a2 a2
每次迭代时换值,每次迭代使用3次
2.唯一+每次迭代:a1 a1 a1,a2 a2
a2
单用户,顺序和唯一是一样的;迭代时换值
3.随机+每次迭代:a12 a12 a12,a9 a9
a9
每次迭代取随机值
4.顺序+每次遇到:a1 a2 a3,a4 a5
a6
只要遇到name就换值,从第一个开始
5.唯一+每次遇到:a1 a2 a3,a4 a5
a6
单用户,顺序和唯一是一样的;
考虑超过值时,关注block块大小
对于单用户,无需关注块大小,多用户(控制台)才考虑
改为:外循环5次(run-time
setting),内循环10次(for循环)
要准备充足的数据
when out value:
1.Abort
Vuser放弃VU:报告出错
Action.c(7): Error: Parameter 'name': No more unique values
for this parameter in table 'name.dat'
[unique range is 1-30]. The Vuser is
aborted according to "When Out Of Values" policy.
2.continue in a cyclic
manner继续从头再来:不会出错,正常取值
3.continue with last
value持续最后一个:结果正常,日志报错
Action.c(7): Error: Parameter 'name': No more unique
values for this parameter in table 'name.dat'
[unique range is 1-30].The
parameter continues with last value of the range according to "When Out Of
Values" policy.
6.随机+每次遇到:a13 a19 a2,a27 a30
a4
一共遇到2*3=6次,随机取值
7.顺序+一次:a1 a1 a1,a1 a1 a1
8.唯一+一次:a1 a1 a1,a1 a1
a1
9.随机+一次:a8 a8 a8,a8 a8 a8
题目二:某参数现有备份数据a1,a2,a3...a30;脚本迭代4次;3个VU;完成以下结果:
1.顺序+每次迭代:<重要>
VU1:a1
a2 a3 a4;
VU2:a1 a2 a3 a4;
VU3:a1 a2 a3
a4;
2.唯一+每次迭代:(无特殊说明,块大小自动分配)<重要>
VU1:a1 a2 a3 a4;
VU2:a5 a6 a7
a8;
VU3:a9 a10 a11
a12;
从第一行开始取值,每个VU都不同;每个VU迭代4次,取值4次(默认块大小为4)
3.随机+每次迭代:<重要>
VU1:a11
a15 a3 a27;
VU2:a5 a10 a7 a22;
VU3:a21 a11 a15
a12;
4.顺序+每次遇到:
VU1:a1 a2 a3 a4;
VU2:a1 a2 a3 a4;
VU3:a1 a2 a3
a4;
5.唯一+每次遇到:(块大小为6)<重要>
VU1:a1 a2 a3 a4;
VU2:a7 a8 a9
a10;
VU3:a13 a14 a15 a16;
6.随机+每次遇到:
VU1:a9 a15 a3 a17;
VU2:a5 a17
a6 a22;
VU3:a21 a11 a2 a12;
7.顺序+一次:<重要>
VU1:a1 a1 a1
a1;
VU2:a1 a1 a1 a1;
VU3:a1 a1 a1
a1;
每个VU取值一样,都从第一个开始
8.唯一+一次:<重要>
VU1:a1 a1 a1 a1;
VU2:a2 a2
a2 a2;
VU3:a3 a3 a3
a3;
从第一个开始,每个VU唯一向下取值,每个VU取值后不变
9.随机+一次:<重要>
VU1:a4 a4 a4
a4;
VU2:a16 a16 a16 a16;
VU3:a9 a9 a9 a9;
10.唯一+每次迭代:(块大小为6)
VU1:a1
a2 a3 a4;
VU2:a7 a8 a9 a10;
VU3:a13 a14 a15 a16;

Loadrunner--参数化知识点及参数池策略的更多相关文章

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

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

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

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

  3. LoadRunner参数化&关联

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

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

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

  5. 复习loadRunner参数化

    参数化: 为什么要用参数化? 如果是单一数据,那么会纯测试缓存. 如果是参数化,基本上大部分数据不会被缓存命中. 极端情况:所有的数据都不会被缓存命中,或者少量命中. 在loadrunner中,所有的 ...

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

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

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

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

  8. 认识loadrunner及相关性能参数

    认识loadrunner及相关性能参数 LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整 ...

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

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

随机推荐

  1. 洛谷—— P1629 邮递员送信

    https://www.luogu.org/problem/show?pid=1629 题目描述 有一个邮递员要送东西,邮局在节点1.他总共要送N-1样东西,其目的地分别是2~N.由于这个城市的交通比 ...

  2. azure云中 mount: wrong fs type, bad option, bad superblock on /dev/sdc1

    2016-01-30 mount失败问题解决 [root@mofficedb2 ~]# mount /dev/sdc /dta mount: you must specify the filesyst ...

  3. Hadoop for .NET Developers

    Hadoop for .NET Developers(一):理解Hadoop 这些年来,大数据已经成为分析业界的兴奋源头.对于这个博客系列的目的,我将松散定义这个术语指的重点是从数据核心业务系统里数据 ...

  4. Apache Spark 1.6公布(新特性介绍)

    Apache Spark 1.6公布 CSDN大数据 | 2016-01-06 17:34 今天我们很高兴可以公布Apache Spark 1.6,通过该版本号,Spark在社区开发中达到一个重要的里 ...

  5. vim 基础学习之插入模式

    插入模式1.字符编码,插入特殊字符 <C-v>{3位} 如,你想输入A,你可以在输入模式下<C-v>065(必须是3位) <C-v>u{4位} 如,你想输入¿,你可 ...

  6. NPOI批量导入大量数据

    简介:NPOI批量导入大量数据 使用SqlBulkCopy 可以将datatable里面的大量数据批量复制到数据库中,而不用担心性能问题,比系统中的传统做法(每20行数据执行一遍mydb.execut ...

  7. 威佐夫博奕(Wythoff Game)

    出现奇异局面,先取者必败,反之后拿者必败 奇异局面:(0,0) (1,2) (3,5) (4,7) (ak,bk) ak=bk-k,ak=k*(1+√5)/2: 代码实现(poj 1067): #in ...

  8. spark internal - 作业调度

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 在Spark中作业调度的相关类 ...

  9. Python - 字典(dict)删除元素

    字典(dict)删除元素, 能够选择两种方式, dict.pop(key)和del dict[key]. 代码 # -*- coding: utf-8 -*- def remove_key(d, ke ...

  10. HBase-scan API 通过scan读取表中数据

    直接贴代码啦 /** * * @param zkIp * @param zkPort * @param tablename * @param startRow 传null扫全表 * @param st ...