一、为何进行脚本参数化?
脚本在录制的时候,记录的参数都是常量值,这样,虚拟用户在执行同一个脚本,向服务器发送请求时,使用的都是同一个参数值,与实际不符。所以使用参数化技术。
二、参数化的逻辑?
对脚本中的常量进行参数化,让不同的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. 第二天,导出文件sql,查询,视图view,聚合函数,反模式,字符串处理函数

    //把数据库导出到脚本文件mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql CREATE TABLE stud( id INT PRI ...

  2. vue的指令在webstrom下报错

    Preferences -> Editor -> Inspections找到XML,把 Unbound XML namespace prefix的勾去掉

  3. 43.可变参数实现printf

    #include <stdio.h> #include <stdio.h> #include <Windows.h> #include <stdarg.h&g ...

  4. HDU 2689 Tree

    Tree Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. C/C++(函数)

    函数 函数三要素:函数名,参数,返回值 重点研究函数的输入输出 随机数函数 //产生一组随机数 #include<stdio.h> #include<stdlib.h> #in ...

  6. css--两行显示省略号兼容火狐浏览器

    css--两行显示省略号兼容火狐浏览器 正常写法: .ellipse1{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;} . ...

  7. java高质量缩放图片

    可按照比例缩放,也可以指定宽高 import com.sun.image.codec.jpeg.JPEGImageEncoder; import com.sun.image.codec.jpeg.JP ...

  8. Ansible学习记录五:PlayBook学习

    0.介绍 Playbooks 是 Ansible 管理配置.部署应用和编排的语言,可以使用 Playbooks 来描述你想在远程主机执行的策略或者执行的一组步骤过程等 类似于一组任务集,定义好像项目, ...

  9. celery work logging 问题

    celery 的日志里只输出日志 不输入标准打印

  10. postgresql 不同数据库不同模式下的数据迁移

    编写不容易,转载请注明出处谢谢, 数据迁移 因为之前爬虫的时候,一部分数据并没有上传到服务器,在本地.本来用的就是postgresql,也没用多久,数据迁移的时候,也遇到了很多问题,第一次使pg_du ...