博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LoadRunner使用之变量参数化
阅读量:6714 次
发布时间:2019-06-25

本文共 2334 字,大约阅读时间需要 7 分钟。

LR性能测试之参数化设置

Q:何为参数化?

LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值,这个过程叫做参数化。通俗讲,就是把脚本中一个数值,通过读取文件或者数据库的方式进行替换。

Q:为什么要参数化?  

最直白讲就是为了模拟数据的真实性。一些提交数据我们想让它提交内容每次都有不同的变化,那么可以对提交内容进行参数化,常见到的如一些系统不允许我们使用同一用户重复登录,这时候我们就得对登录的用户名、密码进行参数化,使之在并发运行时,都是使用不同的用户名、密码进行登录的。

Q:如何参数化?

LR工具对于参数化的功能设计,是简单易用,难点可能主要在参数化适用方式和配置规则上面。

以下介绍参数化基本过程:

686364-20150914113320883-1933187941.jpg

右键单击要参数的参数,选择参数化配置,进入到参数配置页面:

686364-20150914113321773-380809769.jpg

 

参数化过程比较简单,参数化时复杂的是对参数属性的设置。主要是以下两个属性的组合。

select  next row 中有三个选项:  Sequential(顺序读取)、Random(随机读取)、Unique (唯一)

update the value 中也有三个选项:  Each Occurrence(每次遇到 )、  Each iteration(每次迭代  )、 Once(一直 

这两个属性可以有九种组合方式,每种方式都不一样。接下来我们就用一个小实例来验证一下每种取值方式的效果。

录制一个lr自带实例WebTours的定单脚本。脚本中将出发城市与到达城市均参数化一下。参数化后还需做个关联(这个就重点说了)保证回放脚本成功。

设置10个用户并发持续加载的场景(参数文件中有10个数据),用默认设置均可。即每15秒加载两个用户,持续时间为5分钟,每30秒停止5个用户。

然后并发跑脚本。

以下为9种组合的测试结果:

1sequential       Once

十个用户 每个用户取值均一样,,每个用户的所有迭代中的取值均一样。

第一个用户执行了5次迭代,每次迭代均取得第一个参数。

第二个用户也执行了5次迭代,每次迭代均取的第一个参数。

第三个。。第四个。等等十个用户均一样。

 2unique      once

  十个用户 每个用户取值都唯一,每个用户的所有迭代中的取值均一样。

 第一个用户执行了5次迭代,每次迭代均取第一个参数;

 第二个用户执行了5次迭代,每次迭代均取第二个参数;

 第三个。。。第四个。。。依此类推。

 第十个用户执行了5次迭代,每次迭代均取第十个参数。

3Random  Once

十个用户,每个用户为随机取值,每个用户的所有迭代中的取值均一样。

第一个用户执行了5次迭代,每次迭代均取第三个参数;

第二个用户执行了5次迭代,每次迭代均取第七个参数;
第三个。。。第四个。。。依此类推十个用户随机取值。

4Sequential      Each iteration

 十个用户,每个用户每次迭代取一个新值。

第一个用户,第一迭代,取第一个参数 ;第二次迭代,取第二个参数 。。。。第十次迭代,取第十个参数。

第二个用户,第一次迭代,取第一个参数;第二次迭代,取第二个参数 。。。。第十次迭代,取第十个参数。

第三个。。第四个。。。依此类推。

5Unique     Each iteration

由于只设置了十个参数,运行过程中报参数不足的错误。

第一个用户,第一次迭代,取第一个参数;第二次迭代报错。。。第十次迭代报错。

第二个用户,第一次迭代,取第二个参数;第二次迭代报错。。。第十次迭代报错。

第三个。。第四个。。依此类推。

 

如果修改为100个参数则:

第一个用户,第一迭代,取第一个参数 ;第二次迭代,取第二个参数 。。。。第十次迭代,取第十个参数。

第二个用户,第一次迭代,取第十一个参数;第二次迭代,取第十二个参数 。。。。第十次迭代,取第二十个参数。
第三个。。第四个。。。依此类推。

6Random     Each Iteration

十个用户,每个用户每次迭代均随机去一个值。

第一个用户,第一迭代,取第一个参数 ;第二次迭代,取第四个参数 。。。。第十次迭代,取第七个参数。

第二个用户,第一次迭代,取第三个参数;第二次迭代,取第二个参数 。。。。第十次迭代,取第一个参数。
第三个。。第四个。。。依此类推。

7Sequential        Each ocurrance

十个用户,每个用户每次遇到均取一个值。

第一个用户,第一次迭代,每次遇到顺序取一个值;第二次迭代,按顺序接着取值。。。。。

第二个用户,第一次迭代,每次遇到顺序取一个值(从第一个参数开始);第二次迭代,按顺序接着取值。。。。。

依此类推。

8 unique          Each occurrance

 十个用户,每个用户每次遇到均取一个不同的值。

 参数列表中要有足够的参数。

 

9 Random       Each Occurrance

十个用户,每个用户每次遇到随机取一个值。

第一个用户,第一次迭代,每次遇到随机取一个值,第二次迭代,随机再取值。。。。。

第二个用户,第一次迭代,每次遇到随机取一个值,第二次迭代,随机再取值。。。。。

依此类推。

 

总之,主要区分 sequential UniqueRandom 的区别。

sequential为顺序取,每个用户均从第一个参数开始取值。

Unique为唯一,每个用户取值均不同。

Random 为随机,每个用户均随机取值。

转载于:https://www.cnblogs.com/tsbc/p/4806726.html

你可能感兴趣的文章
Kinect for Windows SDK开发学习相关资源
查看>>
Android 类中类广播的静态注册方法
查看>>
Requests库上传文件时UnicodeDecodeError: 'ascii' codec can't decode byte错误解析
查看>>
MapReduce中,new Text()引发的写入HDFS的输出文件多一列的问题
查看>>
Windows Phone本地数据库(SQLCE):8、DataContext(翻译)
查看>>
SGU 406 Goggle
查看>>
〖Linux〗Shell十进制数值转换十六进制
查看>>
java设计模式--行为型模式--状态模式
查看>>
mysql学习笔记 第六天
查看>>
MVC4 + EF为Model添加单独的验证属性
查看>>
Oracle用游标删除重复数据
查看>>
数组指针
查看>>
OpenStreetMap初探(一)——了解OpenStreetMap
查看>>
安卓表格布局android:collapseColumns,android:shrinkColumns和stretchColumn
查看>>
js中substr与substring的差别
查看>>
A06_RelativeLayout的属性设置
查看>>
Quartz中时间表达式的设置-----corn表达式
查看>>
javac: cannot execute binary file
查看>>
使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库
查看>>
使用Ajax的Time实现倒计时功能
查看>>