学习笔记-LoadRunner参数化设置及迭代配置说明

这篇具有很好参考价值的文章主要介绍了学习笔记-LoadRunner参数化设置及迭代配置说明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下内容对loadrunner进行一个初识,让之后运用更加熟练,咱们这里用的是loadrunner自带的WebTours平台,他是不含数据库的。

  • loadrunner的录制方式有两种,如下图所示,1:基于HTML方式(只针对鼠标和键盘事件,录制的文本比较纯净,不需要做过多筛选。)2:基于URL方式(会录制全部内容,包括页面有广告内容之类的)。两种方式需要根据实际工作需求进行选择:
    学习笔记-LoadRunner参数化设置及迭代配置说明
  • 选择支持的字符集方式为UTF-8:
    学习笔记-LoadRunner参数化设置及迭代配置说明

当第一次脚本跑出来后进行脚本的升级维护的一些操作如下,包括参数化设置:

参数化的方式

其实参数化的方式有很多种,这里简述自己常用的方式。其实方式略有不同,但其结果都是将数据添加进来。
1、编辑数据
菜单【Vuser】—【Parameter List…】,点击new就会创建出一个参数NewParam。创建后,点击Create Table 会出现表格,在表格,再次点击【Edit with Notepad】 ,然后会打开一个记事本,我们可以对记事本进行添加数据。
2、添加dat数据文件
点击File path输入框后面的“Browse…”按钮,找到本地的txt数据文件(记住这个txt文件保存后要修改成dat文件,否则无法找到),进行添加就可以了。
学习笔记-LoadRunner参数化设置及迭代配置说明
学习笔记-LoadRunner参数化设置及迭代配置说明
学习笔记-LoadRunner参数化设置及迭代配置说明
添加后的数据展示
学习笔记-LoadRunner参数化设置及迭代配置说明
需要注意的是,文件里面的数据不要乱写,每条数据一行,不然会读取有误。这个文件如果需要构造大量的数据,可以用表格或者Python自动化写入文件的方式进行操作。在记事本中编辑参数数据时,数据文件一定要以一个空行结束,否则,最后一行输入的数据不会被参数所使用(也有可能会报错)。表格上最多展示一百条数据,超过一百条就看不到了(数据还在,只是看不到)。

参数化的方法

选中要参数化的内容。
注:Parameter name默认会显示NewParam,如果已经有参数化,则需要在下拉按钮进行选择已参数化的Parameter name
方法一,右键参数—【Replace with a new parameter】

方法二,菜单【insert】----【new Parameter…】
两个方法的框都是一样的
学习笔记-LoadRunner参数化设置及迭代配置说明
想进行详细设置的就点击上图弹出框右下角的Properties…(Parameter Properties),就会弹出以下这个框框
Parameter Properties (参数属性对话框)----我们的参数化设置就通过这个对话框完成
学习笔记-LoadRunner参数化设置及迭代配置说明

数据配置与更新方式(迭代配置与规则)

学习笔记-LoadRunner参数化设置及迭代配置说明
脚本设置完参数化,脚本运行的每一遍所取的参数化的值都不一样,那么这个值按照个什么情况来取呢?会有很多种方式
Select next row【选择下一行】:
学习笔记-LoadRunner参数化设置及迭代配置说明

①顺序(Sequential):按照参数化的数据顺序,一个一个的来取。
②随机(Random):参数化中的数据,每次随机的从中抽取数据。
③唯一(Unique):为每个虚拟用户分配一条唯一的数据。
学习笔记-LoadRunner参数化设置及迭代配置说明
①每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。
②每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。
③只取一次(once) :参数化中的数据,一条数据只能被抽取一次。(如果数据轮次完,脚本还在运行将会报错)。
注:先不考虑【When out of values】和【Allocate Vuser values in the Controller】,那就是有9种取值方式;
举例说明下仅在VuGen下的取值方式:回放脚本时可以设置迭代次数,在VuGen中迭代(迭代次数设置:菜单【Vuser】—【Run-time Settings】—【General】中的Run Logic,Number of lterations设置迭代次数),可以理解为只有一个用户重复操作了N次(N表示你设置的迭代次数)。假设设置迭代次数为3次,参数如下:
此时,取值方式的规则如下:

  • Sequential & Each iteration
    按照参数列表顺序取值,只有每发生一次迭代才去顺序获取新值。取值结果为:test01、test02、test03
  • Sequential & Each occurrence
    假设你的脚本中,有多处设置了{username}参数化,那么此时在同一次迭代中,每遇见一处参数化{username}就会获取新值,且是按照参数列表顺序获取的;
    假如你的脚本中,设置了2处{username}参数化,依然设置迭代3次,那么取值结果就是:
    第一次迭代:test01、test02;
    第二次迭代:test03、test04;
    第三次迭代:test05、test06;
  • Sequential & Once
    假如你的脚本中,设置了2处{username}参数化,依然设置迭代3次,那么取值结果就是第一次取得值,之后不会在改变!
    第一次迭代:test01、test01;
    第二次迭代:test01、test01;
    第三次迭代:test01、test01;
  • Random & Each iteration
    设置迭代三次(未作特殊说明都视为设置3次迭代)
    按照参数列表顺序取值,只有每发生一次迭代才去顺序获取新值。取值结果随机,三次迭代的取值结果有可能【test01、test02、test03】、有可能【test01、test02、test01】、有可能【test01、test01、test01】
  • Random & Each occurrence
    假设你的脚本中,有多处设置了{username}参数化,那么此时在同一次迭代中,每遇见一处参数化{username}就会获取新值,且是按照参数列表顺序获取的;
    假如你的脚本中,设置了2处{username}参数化,依然设置迭代3次,那么取值结果随机:
    有可能第一次迭代:test01、test04;
    有可能第二次迭代:test02、test01;
    有可能第三次迭代:test02、test02;
  • Random & Once
    假设你的脚本中,有多处设置了{username}参数化,那么此时在同一次迭代中,每遇见一处参数化{username}就会获取新值,且是按照参数列表顺序获取的;
    假如你的脚本中,设置了2处{username}参数化,依然设置迭代3次,那么取值结果取决于第一次随机取得值
    假如第一次迭代、第一处参数化随机取值为 test02,那么之后的取值都是一样的
    第一次迭代:test02、test02;
    第二次迭代:test02、test02;
    第三次迭代:test02、test02;
  • Unique & Each iteration
    设置迭代三次(未作特殊说明都视为设置3次迭代)
    按照参数列表顺序取值,只有每发生一次迭代才去顺序获取新值。三次迭代的取值结果:test01、test02、test03;
  • Unique & Each occurrence
    假设你的脚本中,有多处设置了{username}参数化,那么此时在同一次迭代中,每遇见一处参数化{username}就会获取新值,且是按照参数列表顺序获取的;
    假如你的脚本中,设置了2处{username}参数化,依然设置迭代3次,那么取值结果:
    有可能第一次迭代:test01、test02;
    有可能第二次迭代:test03、test04;
    有可能第三次迭代:test05、test06;
  • Unique & Once
    假设你的脚本中,有多处设置了{username}参数化,那么此时在同一次迭代中,每遇见一处参数化{username}就会获取新值,且是按照参数列表顺序获取的;
    假如你的脚本中,设置了2处{username}参数化,依然设置迭代3次,那么取值结果为:
    第一次迭代:test01、test01;
    第二次迭代:test01、test01;
    第三次迭代:test01、test01。

参考地址:https://blog.csdn.net/gaofengyan/article/details/90903814

补充:在loadrunner controller影响下的取值规则

前提:

  • 假设脚本中有两处做了{username}参数化;
  • 真正使用controller压测时,正常都不会在VuGen中设置迭代次数了;
    参数如下:
    学习笔记-LoadRunner参数化设置及迭代配置说明
    场景1设置:瞬时启动所有2个vuser、压测时间2分钟、一起结束所有vuser;
    当VuGen脚本中设置Sequential或Random时,那么在controller中无论创建了多少个vuser,你都可以理解为每个vuser都会拿到一份参数列表,每个vuser之间互不干扰互不影响。每个vuser都在压测时间内各自迭代,直到压测结束
    举个栗子:即每个人都会拿到同一份数据,A跑test01,test02,B也跑test01,test02
    此时,取值方式的规则如下:
  • Sequential & Each iteration
    按照参数列表顺序取值,只有每发生一次迭代才去顺序获取新值。
    vuser1 取值结果为:【test01、test01】、【test02、test02】、【test03、test03】、【test04、test04】、【test05、test05】、【test06、test06】、【test01、test01】、【test02、test02】…循环下去;
    vuser2 取值结果为:【test01、test01】、【test02、test02】、【test03、test03】、【test04、test04】、【test05、test05】、【test06、test06】、【test01、test01】、【test02、test02】…循环下去;
  • Sequential & Each occurrence
    假设你的脚本中,有多处设置了{username}参数化,那么此时在同一次迭代中,每遇见一处参数化{username}就会获取新值,且是按照参数列表顺序获取的;
    假如你的脚本中,设置了2处{username}参数化:
    vuser1 取值结果为:【test01、test02】、【test03、test04】、【test05、test06】、【test01、test02】…循环下去;
    vuser2 取值结果为:【test01、test02】、【test03、test04】、【test05、test06】、【test01、test02】…循环下去;
  • Sequential & Once
    假如你的脚本中,设置了2处{username}参数化,那么取值结果就是第一次取得值,之后不会在改变!
    vuser1 取值结果为:【test01、test01】、【test01、test01】、【test01、test01】、【test01、test01】…循环下去;
    vuser2 取值结果为:【test01、test01】、【test01、test01】、【test01、test01】、【test01、test01】…循环下去;
    Random和Sequentail一样的逻辑,只不过是取值是随机的!
    重点是Unique!!!
  1. 多个用户不再每人一份参数列表了,而是共用一份参数列表,且每个用户间的参数范围不能相同;
    举个栗子:即每个人只能共享同一份数据,A跑完test01,test02,B就不能跑test01,test02,只能选test03和test04去跑
  2. 通过Allocate Vuser value in the Controller选项,确定参数如何分配给每个用户的,有两个选项:
    (1)Automatically allocate block size,此选项仅在Unique & iteration组合下可以选择,意思是自动给Vuser分配参数给每个Vuser,比如此例中6个参数,启动2个用户,如果选择Unique & iteration & Automatically allocate block size的组合,则每个用户分得3个参数,【test01、test02、test03】、【test04、test05、test06】;
    (2)Allocate ____values for each Vuser,这个就是自定义分配了。
  3. 如果此例中6个参数,但我设置7个Vuser,那么controller也将只启动6个vuser,会报错一个vuser,因为它没有分到参数,而且成功启动的那6个vuser将平分6个参数;

Unique的的作用是将参数分给多个压测用户,使得每个用户间拿到唯一的参数范围。
至于每个用户在拿到属于自己的参数范围后怎么用,那就是以下的几种组合了:
前提:依然假设6个参数,启动2个用户,压测2分钟;
Unique & iteration & Automatically allocate block size,则:
vuser1 获得的参数范围是:【test01、test02、test03】;
vuser2 获得的参数范围是:【test04、test05、test06】;
此时when out of values会点亮,它又有三个选项,那它是什么意思呢?
它的意思是:举个例子,假如你这个脚本15s就能跑完一次,那么压测2min,不间断的跑,你能跑8次,但是每个vuser就分到了3个参数,(拿vuser1举例)当vuer1第三次迭代时取的是test03(vuser2跑到第三次时取的test06),当到进行第4次迭代时,参数不够了那怎么办呢?此时这个选项就是干这个的,为你定制规则,它有三个选项,即:

  • abort user 终止,说白了就是参数不够就报错了
  • continue in a cyclic manner 在各自的参数范围内循环取值,(即vuser1在test01、test02、test03循环取值,vuer2在test04、test05、test06循环取值)有人会问unique不是唯一吗?这么取值不久重复了么,不好意思你理解错了,unique的意思是每个用户间取值唯一,没说同一个用户的不同迭代取值唯一。
  • continue with last value 就是字面意思,参数不够时,一直用各自参数范围内的最后一个参数;

当Unique & Each occurrence时,只能选择Allocate ____values for each Vuser了,其余的逻辑都一样。
当Unique & Once时,说白了,在参数满足的情况下,每个用户只取一个,每个用户在压测时间内都只会用一个参数进行迭代,直至结束。如此例6个参数,压测2分钟,假如我启动了6个vuser,则每个vuser得到一个参数,vuser1取得test01,持续迭代2分钟,并且只用这个test01。假如我设置7个vuser,启动后你会发现实际只启动了6个vuser,报错了一个,因为参数不够分了。所以你的参数的数量最好不小于并发vuser数量。

参考地址:https://www.cnblogs.com/lianggaobo/p/15724566.html文章来源地址https://www.toymoban.com/news/detail-414220.html

到了这里,关于学习笔记-LoadRunner参数化设置及迭代配置说明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PyQt学习笔记-使用QSettings保存系统配置参数

    QSettings继承于QObject,位于PyQt6.QtCore模块中,是PyQt中用来存储配置信息的常用工具。 QSettings的API基于QVariant,允许您以最小的工作量保存大多数基于值的类型,例如QString,QRect和QImage。 可通过配置将应用程序需要保存的参数数据保存到本地,如windows的注册表,macOS 和 iOS 上的

    2024年02月07日
    浏览(28)
  • elasticsearch目录及配置参数说明

    存放ES启动、关闭等脚本文件 存放执行文件,例如启动脚本、密钥工具等 ES的配置文件所在的目录,其中有三个主要的配置文件 elasticsearch.yml是用于ES的最主要的配置文件 jvm.options用于配置ES JVM设置 log4j2.properties用于配置ES 日志记录的属性 ES自带的JDK目录 默认的索引数据存储

    2024年02月16日
    浏览(35)
  • PostgreSQL常用配置参数【一表说明】

    参数 更改需要重新启动 说明 类型 default 范围 设置建议 Work_mem 最小64kB.可以限制用于排序内存的大小,该值在客户端连接之后可以增加,该类型分配使用的是\\\"非共享内存\\\" 整型 4MB 64~2147483647 单位KB通常设置为64MB。 如果尝试寻找一个适合所有场景的答案,通常设置为64MB。内存中

    2024年02月12日
    浏览(29)
  • springBoot 配置文件引入 redis 的相关参数说明

    在Spring Boot应用中使用Redis作为缓存或数据存储时,可以在应用的配置文件中配置相关参数。下面是常用的Redis配置参数及其说明: spring.redis.host : Redis服务器主机地址,默认为localhost。 spring.redis.port : Redis服务器端口,默认为6379。 spring.redis.password : Redis服务器密码,如果有设

    2024年02月12日
    浏览(31)
  • django——配置 settings.py 及相关参数说明

    设置 setting.py 文件 加入安装的库 加入新增的APP 启动项目 3.2.1 BASE_DIR 当前工程的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径。 3.2.2 DEBUG 注意:部署线上运行的Django不要运行在调式模式下,记得修改DEBUG=False和ALLOW_HOSTS。 Django支持本地

    2024年02月12日
    浏览(30)
  • 【Java】JDK8 jvm参数配置及说明

    -Xms 或 -XX:InitialHeapSize=n 设置堆的初始值 指令1:-Xms2g 指令2:-XX:InitialHeapSize=2048m -Xmx 或 -XX:MaxHeapSize=n 设置堆区最大值 指令1: -Xmx2g 指令2: -XX:MaxHeapSize=2048m -XX:NewSize=n 设置年轻代大小 -Xss 或 -XX:ThreadStackSize=n 每个线程堆栈最大值 指令1:-Xss256k 指令2:-XX:ThreadStackSize=256k 注意:

    2024年02月03日
    浏览(37)
  • ES9学习 -- 对象的剩余参数与扩展运算符 / 正则扩展 / Promise.finally / 异步迭代

    // kerwin {age:100,location: ‘dalian’} 其中…other 可以拿到对象的剩余参数 // {name: ‘xiaoming’,location: ‘dalian’,age: 18] 在实际开发中,我们会使用ajax() 封装一些默认的属性和属性值,以备用户忘记或未传入某些参数。 // { methods: “get”, async: true, url: “/api”} 正则表达式命名捕获

    2024年04月09日
    浏览(29)
  • LoadRunner参数化最佳实践:让你的性能测试更加出色!

    距离上次使用loadrunnr 已经有一年多的时间了。初做测试时在项目中用过,后面项目中用不到,自己把重点放在了工具之外的东西上,认为性能测试不仅仅是会用工具,最近又想有一把好的利器毕竟可以帮助自己更好的完成性能测试工作。这算是一个认知的过程吧! 在次安装

    2023年04月25日
    浏览(40)
  • 【Lua学习笔记】Lua进阶——Table,迭代器

    在【Lua学习笔记】Lua入门中我们讲到了Lua的一些入门知识点,本文将补充Lua的一些进阶知识 在上篇文章的最后,我们指出通过查询_G的字符索引,发现table.insert实际上是一个名为table的table结构里的索引指向的函数 实际上不仅它,所有的函数,模块,全局变量,元表 😅😅😅

    2024年02月15日
    浏览(28)
  • loadrunner入门教程(8) --脚本录制前设置

    这里以Web(HTTP/HTML)协议为例: VuGen录制浏览器主要是通过代理的方式来实现的。开始录制时,VuGen打开浏览器,并 以VuGen作为代理来访问目标服务器。这样,VuGen就可以捕获客户端与服务器之间通信的数据包。 在使用VuGen进行录制用户操作时,VuGen会对捕获的数据进行分析,

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包