首页 程序猿 软件测试 浏览内容

LoadRunner参数化

2069 0 BaiDu已收录 评论留言

最近有小伙伴问到LoadRunner参数化,这里就给大伙说说;以下是综合各处资料整理出来的:
首先:为什么要对脚本进行参数化
a) 为了减少脚本的大小和脚本数量,借助参数化我们可以减少脚本的数量,
如果不进行参数化,我们为了达到目标可能要拷贝并修改很多个脚本。
b) 使业务更接近真实的客户的业务,每个虚拟用户使用不同参数值来模拟
这样才接近客户的实际情况。

第二:怎么进行参数化

a) 编辑脚本,使用参数代替常量;

LoadRunner-cs1

LoadRunner-cs1


b) 设置参数的属性和数据源;
那么如何进行参数化呢?选中要参数化的内容点右键->Replace with a parameter(如下图)。输入参数化的名称,假设为password。
这时要我们要注意的一个问题是,当参数化结束后,脚本保存的根目录下会
多出两个参数化的文件,就是刚才对两个数进行参数化后的文本文件,当然一般的情况下我们不要将这个参数化的文件放到脚本的目录下,而应该是放到一个专门的文件下,这样可以保证参数化文件与脚本分离,如我们新建一个文件夹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 属性:
这里是用来选择参数文件的路径,这里要注意的一个问题是,一般我们在做
参数化的时候没有单独把参数文件放到一个文件夹下,所以一般我们都没有更改
过这块,但我们上面已经讲过,一般都会将参数化文件合并到一个文件下并放到
一个专门管理参数的文件夹下,保证参数化文件与脚本分离,这样我们就要选择
参数的路径,否则无法读到参数文件中的参数,具体的如下图。

LoadRunner-cs3

LoadRunner-cs3

选择好之后,会列出参数化文件中所有的项,如下图:

LoadRunner-cs4

LoadRunner-cs4

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

c) 导入数据方法:
LoadRunner 允许使用Microsoft Query 或者指定数据库连接字符串与SQL 语
句,利用参数化从已存在的数据库中导入数据。在这里这两种导入数据的方法的
区别在于使用Microsoft Query 时,不要新建数据源,在导入向导过程中直接连
接数据库,而手动指定数据库字符器,需要先做好数据源,现在一般都使用这种
方法。

d) Select next now 属性:
注意:这里要注意的是所有的Select next now 属性选择是针对虚拟用户来说
的,也就是这里的策略是针对Controller 设置的,在调试脚本的过程中是看不出
来的,其决定虚拟用户如何选择参数的过程。
 Sequential:虚拟用户Vuser 按照行顺序的进行读取参数文件中的数据,
如果参数文件中没有足够的数据,则返回到第一个值,并一直循环到结束。
 Random:每个Vuser 从表中随机的读起参数数据。
 Unique:唯一的数,即每个Vuser 取到的参数均不一致,这里强调了用户的差异性。
 Same link as ***:如果一个脚本中定义了多个参数,而有一些参数应
该是对应的关系,如上图中的用户名和密码就是对应关系,即密码应该始终和用
户名对应,这时就要用到这个选项。
e) Update value on 属性:
注意:这里设置的策略是针对脚本的迭代来讲的,也就是说这里的一切策略
其仅仅在脚本迭代次数发挥作用,而对Vuser 选择参数没有影响。
 Each iteration:脚本每迭代一次都访问数据表中的下一个值。
注意:如果在一次迭代过程中,某个参数使用到多次,如下图这个例子中,
在一次迭代中使用到两次用户名和密码,这两次使用的同一个数据,而并不是两
个数据。
Each occurrence:参数在每次迭代的过程中,参数的值都的更新。

注意:如果一个参数在一次迭代过程中出现多次,即使在同一次迭代过程中
也得更新

Once:在同一个Vuser 中一直取同一个参数,表中的数据不参于迭代的
过程。

到这里参数化的过程已经全部讲完,这里总结一下,参数化过程中要注意的
问题:
1) 参数化文件尽可能少,因为参数是放在内存中的,占用了内存的资源;
2) 参数化文件与脚本分离;
3) 参数文件的路径应该以相对路径来取;
4) 一些时候为了使参数更具有真实性,参数应该从数据库中来获得;
5) 参数类型的选择;
6) 参数的数据一般要由业务决定

标签:
墨月的头像
  • 本文由墨月网络整理编辑,转载请以链接形式注明本文地址:https://www.moyoo.net/11746.html
    版权所有© 墨月网络 | 本文采用 BY-NC-SA 进行授权丨发布于:2015-04-14 21:42
    若未注明,均为原创;部分内容源于网络,版权归原作者所有,如有侵权,请联系我们删除。
评论头像

关注我们,实时联系

AD

注册即送25美刀

Vultr

推广

Vultr

赞助商

广而告之

alimama