loadrunner参数化

上一篇 / 下一篇  2012-03-06 11:03:32

前言
为什么这里说是细说LoadRunner参数化,在书和网上到处都能找到关于
LoadRunner 参数化的内容,但是细心的读者不能难发现,虽然现在很多资料都
有关于参数化的内容,但写的都不够详细,对于初学者来说是一件很困难的事,
而参数化又是编辑脚本最重要的一部分之一,没有学好参数化就不能算是一名合
格的性能测试工程师,因此,在这里我将自己理解的关于参数化的内容写出来和
初学者共享,希望这份资料对大家学好参数化部分的知识有帮助。
首先:为什么要对脚本进行参数化
a) 为了减少脚本的大小和脚本数量,借助参数化我们可以减少脚本的数量,
如果不进行参数化,我们为了达到目标可能要拷贝并修改很多个脚本。
b) 使业务更接近真实的客户的业务,每个虚拟用户使用不同参数值来模拟
这样才接近客户的实际情况。
第二:怎么进行参数化
首先在这里先声明一下,下面所有使用的例子都是录制LoadRunner 中自带
的那个例子的注册过程。


这里包括两部分的部分:
a) 编辑脚本,使用参数代替常量;
b) 设置参数的属性和数据源;
那么如何进行参数化呢?选中要参数化的内容点右键 ->Replace with a
parameter(如下图)。输入参数化的名称,假设为password。
这时要我们要注意的一个问题是,当参数化结束后,脚本保存的根目录下会
多出一个参数化的文件:
图中多出两个参数化的文件(password 和user)就是刚才对两个数进行参数
化后的文本文件,当然一般的情况下我们不要将这个参数化的文件放到脚本的目
录下,而应该是放到一个专门的文件下,这样可以保证参数化文件与脚本分离,
如我们新建一个文件夹parameter,将所有参数化的文本文件都放到这个文件夹
下。
这里我们只有两个参数化文件,那么当有很多参数化文件怎么办呢,因为当
一个项目很大时,其录制的业务很多时,参数化文件会很多,甚至上几百MB 时,
这时为了方便管理参数化文件和节约空间我们会对参数化文件进行合并到一个
文件夹中,如上面两个参数化文件就可以合并,参数化之间用逗号隔开即可,如
下图合并好后的参数化文件。
再看一下参数化的属性:
a) 参数类型属性:
1. "Date/Time"(日期/时间)参数类型:
"Date/Time"类型用当前的日期和/或时间替换参数。要指定日期/时间的
格式,可以从菜单列表中选择,或者指定实际需要的格式。该格式应该
与脚本中录制的日期/时间格式相对应。还可以单击该对话框中相应的按
钮对格式进行添加、删除、还原等操作。
2. "Group Name"(组名)参数类型:
用Vuser 组的名称替换参数。创建方案时,要指定Vuser 组的名称,否
则运行VuGen 的脚本时,组名始终为"无"。但在VuGen 中运行时,Group
Name 将会是None。
3. "Iteration Number"(迭代编号)参数类型:用当前的迭代编号替换参数。
4. "Load Generator Name"(负载生成器名)参数类型:用Vuser 脚本的负
载生成器名替换参数。负载生成器是运行Vuser 的计算机。
5. "Random Number"(随机编号)参数类型:用一个随机生成的整数替换
参数,可以通过指定最小和最大值,设置随机编号的范围。
6. "Unique Number"(唯一编号)参数类型:用一个唯一编号替换参数。"Block
size"(块大小)指明分配给每个Vuser 的编号块的大小。每个Vuser 都
从其范围的下限(start)开始,在每次迭代时递增该参数值。
7. "Vuser ID"参数类型:LoadRunner 使用该虚拟用户的ID 来代替参数值,
该ID 是由Controller 来控制。在VuGen 中运行脚本时,VuGen 将会是-1。
8. File 参数类型:可以在参数属性中编辑参数文件,也可以直接编辑好参
数文件通过路径来选择,还有从现成的数据库中提取。这是参数化最常
的一种参数类型。
b) Browse 属性:
这里是用来选择参数文件的路径,这里要注意的一个问题是,一般我们在做
参数化的时候没有单独把参数文件放到一个文件夹下,所以一般我们都没有更改
过这块,但我们上面已经讲过,一般都会将参数化文件合并到一个文件下并放到
一个专门管理参数的文件夹下,保证参数化文件与脚本分离,这样我们就要选择
参数的路径,否则无法读到参数文件中的参数,具体的如下图。


选择好之后,会列出参数化文件中所有的项,如下图:
注意:读者可能会发现,这样如果我们把这个脚本拷贝到另外一台机器上去,
这个路径不就出错了吗?也就是我们的脚本可移植性不好,对是的,会出错,因
为这里写的是绝对路径,如果换到其它的一个盘或机器,运行就报错了,那么怎
么解决这个问题?这里我们采用相对路径来解决这个问题,这是我们Browse 设
置为相对路径,将脚本的根目录使用“.”来代替。见下图,这样就不会出错了。


这样就解决了上面的那个问题,具体更好的可移植性了。
c) 导入数据方法:
LoadRunner 允许使用Microsoft Query 或者指定数据库连接字符串与SQL
句,利用参数化从已存在的数据库中导入数据。在这里这两种导入数据的方法的
区别在于使用Microsoft Query 时,不要新建数据源,在导入向导过程中直接连
接数据库,而手动指定数据库字符器,需要先做好数据源,现在一般都使用这种
方法。
下面我们来看一下使用Data Wizard 中的Specify SQL statement manually 如
何导入数据库中的数据。
首先建立一个数据源,在这里我个做一个数据源(具体如何建数据源不做解
释),名称为LR,点击Data Wizard 按钮,选择使用SQL 语句(如下图)。


接下来是选择数据源和写SQL 语句(如下图)。
连接成功后,数据将会被成功的导入,下面我们看一下数据库中数据被导入
到的情况。


d) Select next now 属性:
注意:这里要注意的是所有的Select next now 属性选择是针对虚拟用户来说
的,也就是这里的策略是针对Controller 设置的,在调试脚本的过程中是看不出
来的,其决定虚拟用户如何选择参数的过程。
 Sequential:虚拟用户Vuser 按照行顺序的进行读取参数文件中的数据,
如果参数文件中没有足够的数据,则返回到第一个值,并一直循环到结束。
 例:如上图我们这里有arivn01 到arivn07 七个数据,假设我们有10 个
Vuser,那么第1 个Vuser 读到的参数为arivn01,于此类推,到第8 个Vuser 的
时候,这里表中已经没有数据了,于是又从第一个数据开始读取,故第8 个Vuser
读到的数据是arivn01,第9 个Vuser 读到的数据是arivn02。
 Random:每个Vuser 从表中随机的读起参数数据。
 Unique:唯一的数,即每个Vuser 取到的参数均不一致,这里强调了用


户的差异性。
 Same link as ***:如果一个脚本中定义了多个参数,而有一些参数应
该是对应的关系,如上图中的用户名和密码就是对应关系,即密码应该始终和用
户名对应,这时就要用到这个选项。
e) Update value on 属性:
注意:这里设置的策略是针对脚本的迭代来讲的,也就是说这里的一切策略
其仅仅在脚本迭代次数发挥作用,而对Vuser 选择参数没有影响。
 Each iteration:脚本每迭代一次都访问数据表中的下一个值。
注意:如果在一次迭代过程中,某个参数使用到多次,如下图这个例子中,
在一次迭代中使用到两次用户名和密码,这两次使用的同一个数据,而并不是两
个数据。
下面是参数化的代码:
下面我们来看一下编辑的结果
第一次迭代使用表中数据的结果
 Each occurrence:参数在每次迭代的过程中,参数的值都的更新。


注意:如果一个参数在一次迭代过程中出现多次,即使在同一次迭代过程中
也得更新,下面同样看这个例子,其迭代的结果。
 Once:在同一个Vuser 中一直取同一个参数,表中的数据不参于迭代的
过程。
还是看我们上面的例子的结果:
到这里参数化的过程已经全部讲完,这里总结一下,参数化过程中要注意的
问题:
1) 参数化文件尽可能少,因为参数是放在内存中的,占用了内存的资源;

2) 参数化文件与脚本分离;
3) 参数文件的路径应该以相对路径来取;
4) 一些时候为了使参数更具有真实性,参数应该从数据库中来获得;
5) 参数类型的选择;
6) 参数的数据一般要由业务决定;
后记:
参数化到这里已经彻底讲完了,主要涉及的内容是:
1) 为什么要进行参数化;
2) 如何进行参数化;
3) 参数化过程中要注意那些问题:
以前我也不是很理解到底参数是如何被调用的,现在终于搞定了,当初决定
要写是因为很少有书写的这么细,一般都是2 到3 页搞定,这对初学者来说是一
件很痛苦的事,这里我将我理解的参数化,再加于一些实例展现给大家,希望对
大家的学习有帮助。


TAG:

majiaxinbest的个人空间 引用 删除 majiaxinbest   /   2012-06-15 15:35:53
学习了,谢谢
 

评分:0

我来说两句

我的栏目

日历

« 2024-03-19  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 57740
  • 日志数: 34
  • 图片数: 1
  • 建立时间: 2011-09-26
  • 更新时间: 2017-02-28

RSS订阅

Open Toolbar