51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6695|回复: 21
打印 上一主题 下一主题

[原创] Loadrunner中参数设置详细分析(转)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-17 16:37:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
相信对大家会有用的,这个版本是基于7.8的。
做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。该工具的基本
流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚
拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。
但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用
数据,这就牵涉到参数的设置问题。本文就Loadrunner中参数的设置进行说明,
希望对大家有所帮助。
在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程
中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本
的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程
称为参数化脚本。
本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、
理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属
性、从已经存在的数据库中引入数据。
除了GUI,以下的内容适合于各种类型的用户脚本。
一、关于参数的定义
在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。
函数中参数的值就是在录制过程中输入的实际值。
例如,你录制了一个Web应用程序的脚本。脚本生成器生成了一个声明,该
声明搜索名称为"UNIX"的图书的数据库。当你用多个虚拟用户和迭代回放脚本
时,也许你不想重复使用相同的值"UNIX"。那么,你就可以用参数来取代这个
常量。结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个
文件,也可以是内部产生的变量。
用参数表示用户的脚本有两个优点:
① 可以使脚本的长度变短。
② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图
书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,
而不只搜索一个特定名称的值。
参数化包含以下两项任务:
① 在脚本中用参数取代常量值。
② 设置参数的属性以及数据源。
参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符
串。另外,不是所有的函数都可以参数化的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

22#
发表于 2011-9-16 16:37:04 | 只看该作者
正开始学习
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2011-9-9 16:36:27 | 只看该作者
非常好
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2011-9-8 09:25:35 | 只看该作者
真是大有用处啊。找了好久才找到,谢谢楼主的共享,向楼主学习
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2006-12-22 15:17:04 | 只看该作者
谢谢!为什么我按这个步骤执行时,sql语句好像不执行
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2006-11-24 15:26:00 | 只看该作者
6楼链接已经不能打开了.感谢楼主.正好 用在学LR.学习一下.
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2006-11-24 11:36:56 | 只看该作者
学习一下,正需要这个。。。。
感谢LZ  ^_^
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2005-10-30 10:20:43 | 只看该作者
顶!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2005-10-29 10:26:27 | 只看该作者
ding le
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2005-10-28 16:50:14 | 只看该作者
谢谢分享!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2005-8-18 19:05:54 | 只看该作者
不错不错,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2005-8-18 10:40:32 | 只看该作者

不错不错。很需要~

Originally posted by littlems at 2005-8-17 04:38 PM:
二、参数的创建
可以指定名称和类型来创建参数。不存在对脚本中参数个数的限制。在Web
程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。或
者,也可以在基于图标的树形视图中创建参数。 ...

不错不错。很需要~
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2005-8-18 10:21:01 | 只看该作者

不错不错。很需要~

Originally posted by littlems at 2005-8-17 04:38 PM:
二、参数的创建
可以指定名称和类型来创建参数。不存在对脚本中参数个数的限制。在Web
程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。或
者,也可以在基于图标的树形视图中创建参数。 ...

不错不错。很需要~
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-8-18 10:18:52 | 只看该作者
呵呵 我就是ash。你好
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-8-18 10:18:06 | 只看该作者
Originally posted by 小灰尘 at 2005-8-18 10:01:
我就是以前杨柳青风的斑竹.怀念呐.可惜现在没有人气了.



;)久仰~~~认识一下
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2005-8-18 10:01:10 | 只看该作者
我就是以前杨柳青风的斑竹.怀念呐.可惜现在没有人气了.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-8-17 17:09:59 | 只看该作者
前一阵在杨柳青风论坛也看到过的~~~还真不错^_^
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-8-17 16:40:18 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-8-17 16:39:37 | 只看该作者
六、从已存在的数据库中导入数据
  Loadrunner允许你利用参数化从已经存在的数据库中导入数据。可以使用下
列两种方式之一:
1、 使用Microsoft Query(要求在系统上先安装MS Query)。
2、 指定数据库连接字符串和SQL语句。
用户脚本生成器在从数据库中导入数据的过程中提供了一个向导。在向导
中,你指明如何导入数据-通过MS Query创建查询语句或者直接书写SQL语句。
在导入数据以后,以.dat为后缀并作为正规的参数文件保存。要开始导入数据库
中数据的过程,在参数属性对话框中点击"Data Wizard",则,数据库查询向
导弹出。
  要创建新的查询
1、 选择"Create new query"。如果需要MS Query的帮助,选择"Show me
how to use Microsoft Query",然后点击"Finish"。
如果你还没有安装Microsoft Query,Loadrunner会提示你这个功能不可用。在
进行之前,从Microsoft Office中安装MS Query。
2、 在Microsoft Query中遵循以下步骤,导入期望的表和列。
3、 在完成数据的导入后,选择"Exit and return to Virtual User
Generator",然后点击"Finish"。在参数属性对话框中数据库记录以data文
件的形式显示出来。
要在MS Query中编辑并查看数据,选择"View data or edit in Microsoft
Query"。若要结束,则选择"File>Exit and return to Virtual User
Generator"返回到脚本生成器。
4、 在"Select Column"部分,指定包含当前参数数据的列可以指定列号或者
列名。注意:列标题默认为第0行(row 0)。
5、 从"Select next row"列表中选择一个更新方法来告诉虚拟用户在脚本指
定的过程中如何选择表中的数据。可选项是:Sequential、Random、Unique或者
Same Line As。其中每一项的含义文章前面已经讲述,就不再赘述。
6、 如果选择"Advance row each iteration",虚拟用户在每次迭代的时候会
使用新的一行的数据而不是重复同样的数据。
  要指定数据库连接或者SQL语句
1、 选择"Specify SQL Statement",然后点击"Next"。
2、 点击"Create"指定一个新的连接字符串。选择数据源的窗口弹出。
3、 选择已有的数据源,或者点击"New"创建一个新的数据源。向导将提示你
穿过创建ODBC数据源的过程。在完成后,连接字符串就会在连接字符串框中显示
出来。
4、 在SQL框中,输入或者粘贴SQL语句。
5、 点击"Finish"继续SQL语句并导入数据。数据库记录将以data文件的形式
显示在参数属性框中。
6、 在"Select Column"部分中,指定包含当前参数数据的列。你可以指定列
号或者列名。
7、 从"Select next row"列表中选择一个更新方法来告诉虚拟用户在脚本指
定的过程中如何选择表中的数据。可选项是:Sequential、Random、Unique或者
Same Line As。
8、 如果从Update out of values中,选择"each iteration",虚拟用户在每
次迭代的时候会使用新的一行的数据而不是重复同样的数据。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2005-8-17 16:39:15 | 只看该作者
五、数据文件
  数据文件包含着脚本执行过程中虚拟用户访问的数据。局部和全局文件中都
可以存储数据。可以指定现有的ASCII文件、用脚本生成器创建一个新的文件或
者引入一个数据库。在参数有很多已知值的时候数据文件非常有用。数据文件中
的数据是以表的形式存储的。一个文件中可以包含很多参数值。每一列包含一个
参数的数据。列之间用分隔符隔开,比如说,用逗号。
  对数据文件设置参数属性
  如果使用文件作为参数的数据源,必须指定以下内容:文件的名称和位置、
包含数据的列、文件格式,包括列的分隔符、更新方法。
  如果参数的类型是"File",打开参数属性(Parameter Properties)对话
框,设置文件属性如下:
1、 在"File path"中输入文件的位置,或者点击"Browse"指定一个已有文
件的位置。缺省情况下,所有新的数据文件名都是"parameter_name.dat",注
意,已有的数据文件的后缀必须是.dat。
2、 点击"Edit"。记事本打开,里面第一行是参数的名称,第二行是参数的初
始值。使用诸如逗号之类的分隔符将列隔开。对于每一新的表行开始一行新的数
据。
  注意:在没有启动记事本的情况下如果想添加列,就在参数属性对话框中点
击"Add Col",那么"Add new column"对话框就会弹出。输入新列的名称,
点击"OK"。脚本生成器就会添加该列到表中,并显示该列的初始值。
3、 在"Select Column"部分,指明包含当前参数数据的列。你可以指定列名
或者列号。列号是包含你所需要数据的列的索引。列名显示在每列的第一行
(row 0)。
4、 在"Column delimiter"中输入列分隔符,你可以指定逗号、空格符等等。
5、 在"First data line"中,在脚本执行的时候选择第一行数据使用。列标
题是第0行。若从列标题后面的第一行开始的话,那就在"First data line"中
输入1。如果没有列标题,就输入0。
6、 在"Select next row"中输入更新方法,以说明虚拟用户在脚本执行的过
程中如何选择表中的数据。方法可以是:连续的、随机的、唯一的、或者与其它
参数表的相同行。
6.1、 顺序(Sequential):该方法顺序地给虚拟用户分配参数值。如果正在
运行的虚拟用户访问数据表的时候,它会取到下一行中可用的数据。
6.2、 随机(Random):该方法在每次迭代的时候会从数据表中取随机数
6.3、 使用种子取随机顺序(Use Random Sequence with Seed):如果从
Loadrunner的控制器来运行scenario,你可以指定一个种子数值用于随机顺序。
每一个种子数值在测试执行的时候代表了一个随机数的顺序。无论你何时使用这
个种子数值,在scenario中同样的数据顺序就被分配给虚拟用户。如果在测试执
行的时候发现了一个问题并且企图使用同样的随机数序列来重复测试,那么,你
就可以启动这个功能(可选项)。
6.4、 唯一(Unique):Unique方法分配一个唯一的有顺序的值给每个虚拟用
户的参数。
6.5 、与以前定义的参数取同一行(Same Line As <parameter>):该方法从
和以前定义过的参数中的同样的一行分配数据。你必须指定包含有该数据的列。
在下拉列表中会出现定义过的所有参数列表。注意:至少其中的一个参数必须是
Sequential、Random或者Unique。
如果数据表中有三列,三个参数定义在列表中:id1,name1和title1,如
下:。
ID Name Title
132 Kim Manager
187 Cassie Engineer
189 Jane VP
对于参数id1,你可以指示虚拟用户使用Random方法,而为参数name1和
title1就可以指定方法"Same Line as id1"。所以,一旦ID"132"被使用,
那么,姓名(Name)"Kim"和职位(Title)"Manager"同时被使用。

7、Updta value on数据的更新方法

7.1、Each iteration――每次反复都要取新值

7.2、Each occurrence――只要发现该参数就重新取值

7.3、Once――在所有的反复中都使用同一个值

8、When out of values超出范围:(选择数据为unique时才可用到)

8.1、Abort Vuser――中止

8.2、Continue in a cyclic manner――继续循环取值

8.3、Continue with last value――取最后一个值

9、Allocate Vuser values in the Controller在控制器中分配值:(选择数据
为unique时才可用到)

9.1、 Automatically allocate block size――自动分配

9.2、Allocate()values for each Vuser――指定一个值
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-23 16:24 , Processed in 0.084496 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表