LoadRunner使用之变量参数化
LR性能测试之参数化设置
Q:何为参数化?
LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值,这个过程叫做参数化。通俗讲,就是把脚本中一个数值,通过读取文件或者数据库的方式进行替换。
Q:为什么要参数化?
最直白讲就是为了模拟数据的真实性。一些提交数据我们想让它提交内容每次都有不同的变化,那么可以对提交内容进行参数化,常见到的如一些系统不允许我们使用同一用户重复登录,这时候我们就得对登录的用户名、密码进行参数化,使之在并发运行时,都是使用不同的用户名、密码进行登录的。
Q:如何参数化?
LR工具对于参数化的功能设计,是简单易用,难点可能主要在参数化适用方式和配置规则上面。
以下介绍参数化基本过程:
右键单击要参数的参数,选择参数化配置,进入到参数配置页面:
参数化过程比较简单,参数化时复杂的是对参数属性的设置。主要是以下两个属性的组合。
select next row 中有三个选项: Sequential(顺序读取)、Random(随机读取)、Unique (唯一)
update the value 中也有三个选项: Each Occurrence(每次遇到 )、 Each iteration(每次迭代 )、 Once(一直 )
这两个属性可以有九种组合方式,每种方式都不一样。接下来我们就用一个小实例来验证一下每种取值方式的效果。
录制一个lr自带实例WebTours的定单脚本。脚本中将出发城市与到达城市均参数化一下。参数化后还需做个关联(这个就重点说了)保证回放脚本成功。
设置10个用户并发持续加载的场景(参数文件中有10个数据),用默认设置均可。即每15秒加载两个用户,持续时间为5分钟,每30秒停止5个用户。
然后并发跑脚本。
以下为9种组合的测试结果:
(1)sequential
Once
十个用户 每个用户取值均一样,,每个用户的所有迭代中的取值均一样。
第一个用户执行了5次迭代,每次迭代均取得第一个参数。
第二个用户也执行了5次迭代,每次迭代均取的第一个参数。
第三个。。第四个。等等十个用户均一样。
(2)unique
once
十个用户 每个用户取值都唯一,每个用户的所有迭代中的取值均一样。
第一个用户执行了5次迭代,每次迭代均取第一个参数;
第二个用户执行了5次迭代,每次迭代均取第二个参数;
第三个。。。第四个。。。依此类推。
第十个用户执行了5次迭代,每次迭代均取第十个参数。
(3)Random Once
十个用户,每个用户为随机取值,每个用户的所有迭代中的取值均一样。
第一个用户执行了5次迭代,每次迭代均取第三个参数;
第二个用户执行了5次迭代,每次迭代均取第七个参数;
第三个。。。第四个。。。依此类推十个用户随机取值。
(4)Sequential
Each iteration
十个用户,每个用户每次迭代取一个新值。
第一个用户,第一迭代,取第一个参数 ;第二次迭代,取第二个参数 。。。。第十次迭代,取第十个参数。
第二个用户,第一次迭代,取第一个参数;第二次迭代,取第二个参数 。。。。第十次迭代,取第十个参数。
第三个。。第四个。。。依此类推。
(5)Unique Each
iteration
由于只设置了十个参数,运行过程中报参数不足的错误。
第一个用户,第一次迭代,取第一个参数;第二次迭代报错。。。第十次迭代报错。
第二个用户,第一次迭代,取第二个参数;第二次迭代报错。。。第十次迭代报错。
第三个。。第四个。。依此类推。
如果修改为100个参数则:
第一个用户,第一迭代,取第一个参数 ;第二次迭代,取第二个参数 。。。。第十次迭代,取第十个参数。
第二个用户,第一次迭代,取第十一个参数;第二次迭代,取第十二个参数 。。。。第十次迭代,取第二十个参数。
第三个。。第四个。。。依此类推。
(6)Random Each
Iteration
十个用户,每个用户每次迭代均随机去一个值。
第一个用户,第一迭代,取第一个参数 ;第二次迭代,取第四个参数 。。。。第十次迭代,取第七个参数。
第二个用户,第一次迭代,取第三个参数;第二次迭代,取第二个参数 。。。。第十次迭代,取第一个参数。
第三个。。第四个。。。依此类推。
(7)Sequential
Each ocurrance
十个用户,每个用户每次遇到均取一个值。
第一个用户,第一次迭代,每次遇到顺序取一个值;第二次迭代,按顺序接着取值。。。。。
第二个用户,第一次迭代,每次遇到顺序取一个值(从第一个参数开始);第二次迭代,按顺序接着取值。。。。。
依此类推。
(8)
unique Each occurrance
十个用户,每个用户每次遇到均取一个不同的值。
参数列表中要有足够的参数。
(9)
Random Each Occurrance
十个用户,每个用户每次遇到随机取一个值。
第一个用户,第一次迭代,每次遇到随机取一个值,第二次迭代,随机再取值。。。。。
第二个用户,第一次迭代,每次遇到随机取一个值,第二次迭代,随机再取值。。。。。
依此类推。
总之,主要区分 sequential 、Unique、Random 的区别。
sequential为顺序取,每个用户均从第一个参数开始取值。
Unique为唯一,每个用户取值均不同。
Random 为随机,每个用户均随机取值。
LoadRunner使用之变量参数化的更多相关文章
- JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置
前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...
- jmeter调试脚本之变量参数化
前言 对于参数化,觉得用得最多的应该是csvread函数.csv data config以及用户自定义变量(前一篇文章已经进行了讲解)控制器这几个 案例:bugfree ,提交bug,参数bug名称和 ...
- LoadRunner使用之变量关联
性能测试LR小结之参数关联(LoadRunner11.0) 关联对于LR是经常需要用到的,本章使用简单登录来介绍关联功能. 1. Q:何为关联? 所谓的关联就是把脚本中某些写死的代码(ha ...
- LoadRunner脚本优化之—参数化迭代介
在LoadRunner的脚本优化时,有时发送给服务器的请求参数化时,服务器返回的内容也会和参数化的内容相对应,例如发送的请求带有查询key=123,则服务器也会返回含有123相关的内容.这时我们在使用 ...
- 【转】Jmeter变量参数化及函数应用
我们在使用Jmeter录制脚本后,经常会对已录制的脚本进行修改,需要把一些参数使用一些变量替代,Jmeter是支持这些功能的,不过是通过函数实现的.下面举一个简单的例子,使用随机数替代一个参数: 打开 ...
- Jmeter变量参数化及函数应用
分类: 测试工具 2006-12-14 10:54 12041人阅读 评论(5) 收藏 举报 javascriptloadrunnerrandom脚本测试多线程 我们在使用Jmeter录制脚本后,经常 ...
- Jmeter接口测试系列之测试用例变量参数化处理
在进行接口测试时,一组完整的接口测试用例,存在后一个测试用例使用前一个用例的请求结果中的数据,此时就需要参数化测试用例中值.直接使用变量调用会存在问题,此时就需要用到beanshell去改变. 举例说 ...
- LoadRunner 参数和变量的区别(未完)
挺久没来更新了,坚持是件不容易的事呢,之后坚持每天总结下前一天的学习点 在LR中,参数是一种更高级的变量,他们能起到同样的效果,但同时也有几点不同 1. 定义方法不同 (这个还没看懂) 2. 调用语法 ...
- loadrunner怎么将变量保存到参数中
用这个lr_save_string 函数 char *b = "很简单";lr_save_string(b,"b"); lr_output_message(&q ...
随机推荐
- 《Linux内核分析》期末总结
Linux内核设计期中总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 前八周博客汇总及总结 Linux内核设计第一周——从汇编语言出发理解计算机工作原理 我们学习了汇编语言的基础知识,这一 ...
- app活动页面上的痛点
app项目上需要做一个小的活动,先看下页面布局 需求是这5个板块逐个展示,展示一块的时候,页面整体向上滚动一定的距离. 刚开始考虑的时候,是准备依赖css3属性的transition实现的,包括顺序延 ...
- VS2013 GIT 克隆远程仓库
1.配置本地GIT 工具->选项->源代码管理,选择GIT 2.打开团队资源管理器,找到GIT克隆选项 3.单击克隆,在输入框内输入远程仓库地址,然后单击克隆即可 GIT 插件配置:参考 ...
- 79. Word Search
使用的别人的思路,用一个二维数组记录每一个位置是否用过,然后通过递归来判断每一个位置是否符合 public class Solution { public boolean exist(char[][] ...
- java解析XML(转载)
使用Dom4j解析XML dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的 ...
- VS2013 ViewData ViewBag Ajax等关键词报错(当前上下文不存在名称)而且不提示也点不出来,但是可以正常运行,
这个多数问题是因为 视图 的Web.config 内的配置问题 在Views文件夹下 有一个Web.config文件,把里面的版本号(System.Web.Mvc, Version=5.2.2.0) ...
- 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中
MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ...
- Python基础学习-Python中最常见括号()、[]、{}的区别
Python中最常见括号的区别: 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. Python中的 ...
- 1393: Robert Hood 旋转卡壳 凸包
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1393 http://poj.org/problem?id=2187 Beauty Contest ...
- IPC-->PIPO
Programing python 4th page 228 """ IPC http://www.cnblogs.com/BoyXiao/archive/2011/01 ...