不要追求绝对的公平,红尘之中没有公平而言,人活一世,难得糊涂。                                           it is no use doing what you like, you have got to like what you do.

Loadrunner中参数的设置

上一篇 / 下一篇  2007-04-18 16:51:04 / 个人分类:Mercury LoadRunner

51Testing软件测试网;U&R.h&O }_1lO

做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚 本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的 使用数据,这就牵涉到参数的设置问题。本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。
Z ^*FbPM*@7F0在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程称为参数化脚本。
0w HX3`$bv3`0本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。51Testing软件测试网bJTo$W.X
除了GUI,以下的内容适合于各种类型的用户脚本。51Testing软件测试网*kkK%h![]"JX#E

[B IfN O+f#N0一、关于参数的定义
)tmfPa I#d0在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。函数中参数的值就是在录制过程中输入的实际值。51Testing软件测试网T2eG)DlI}
例 如,你录制了一个Web应用程序的脚本。脚本生成器生成了一个声明,该声明搜索名称为“UNIX”的图书的数据库。当你用多个虚拟用户和迭代回放脚本时, 也许你不想重复使用相同的值“UNIX”。那么,你就可以用参数来取代这个常量。结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个文 件,也可以是内部产生的变量。
em*w:Kd$rH0用参数表示用户的脚本有两个优点:① 可以使脚本的长度变短。② 可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
-Z8zv9{/C Q p n3w0参数化包含以下两项任务:① 在脚本中用参数取代常量值。② 设置参数的属性以及数据源。
R*V a^p+u4W:e n1v'PL0参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。另外,不是所有的函数都可以参数化的。
:\aD1C5k?ktr.s0
NPmJ5T7S;\(}@Cj0二、参数的创建
P G0f xZ0可以指定名称和类型来创建参数。不存在对脚本中参数个数的限制。在Web程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。或者,也可以在基于图标的树形视图中创建参数。
,VAm%\:Bx0在基于文本的脚本视图中创建一个参数:
b\(f8m+{3u%A:Q2i01、 将光标定位在要参数化的字符上,点击右键。打开弹出菜单。51Testing软件测试网m5wO/Y2Dw
2、 在弹出菜单中,选择“Replace with a Parameter”。选择或者创建参数的对话框弹出。
L h{F-Nf03、 在“Parameter name”中输入参数的名称,或者选择一个在参数列表中已经存在的参数。
T/nAEz3X04、 在“Parameter type”下拉列表中选择参数类型。
"eA9ZsU,V/a4AG05、 点击“OK”,关闭该对话框。脚本生成器便会用参数中的值来取代脚本中被参数化的字符,参数用一对“{}”括住。
~4p)m9DK:l0注 意:在参数化CORBA或者General-Java 用户脚本的时候,必须参数化整个字符串,而不是其中的部分。另外注意:除了Web或者WAP,缺省的参数括号对于任何脚本都是 “{}”。你可以在“General Options”对话框中的“Parameterization”标签(Tools>General Options)中定义参数括号种类。
op{1u#t`%A0MMb*q |4Z06、 用同样的参数替换字符的其余情况,选中参数,点击右键,弹出菜单。从弹出的菜单中,选择“Replace More Occurrences”。搜索和替换对话框弹出。“Find What”中显示了你企图替换的值。“Replace With”中显示了括号中参数的名称。选择适当的检验框来匹配整个字符或者大小写。如果要搜索规则的表达式(.,!,?等等),选中“Regular Expression”检验框,然后点击“Replace”或者“Replace All”。51Testing软件测试网-J1Ac1N!h ZO*o E'G8d q
注意:小心使用“Replace All”,尤其替换数字字符串的时候。脚本生成器将会替换字符出现的所有情况。
g7cCL2eBpO07、 如果想用以前定义过的参数来替换常量字符串的话,选中该字符串,点击右键,然后选择“Use Existing Parameter”,子菜单“Use Existing Parameters”弹出。从子菜单“Use Existing Parameters”选择参数,或者用“Select from Parameter List”来打开参数列表对话框。51Testing软件测试网"_!p*H[P,lH:d O`
注意:如果用以前定义过的参数来替换常量字符串的话,那么,使用“Parameter List”非常方便。同时,还可以查看和修改该参数的属性。51Testing软件测试网&JW6~5RU{-u6U*n
8、 对于已经用参数替换过的地方,如果想取回原来的值,那么,就在参数上点击右键,然后选择“Restore Original value”。
v!N-HF5VY8Z5y0在Web用户脚本的树形视图中创建参数:
v6e:CF!^sd01、将光标定位在企图参数化的地方,点击右键,从弹出的菜单中选择“Properties”。则相关的属性对话框打开。51Testing软件测试网:|*nj8{ yJ"\uM1[
2、点击在要参数化的参量的旁边的“ABC”形状的图标。“Select or Create Parameter”对话框打开。51Testing软件测试网&g3j(x@;Hm@
3、在“Parameter name”中输入参数的名称,或者从列表中选择一个已经存在的参数。51Testing软件测试网9GP%ES.G*L(y%L
4、在“Parameter type”中输入参数的类型。
^9^TJ[05、点击“OK”关闭该对话框。用户脚本生成器会用参数来替换最初的字符串常量,并用一个表格形状的图标替换“ABC”形状的图标。51Testing软件测试网UjpD$Jc#[
6、要恢复参数化以前的值,点击图标,然后从弹出的菜单中选择“Undo Parameter”,则以前的值便会重现。51Testing软件测试网;F8k:p4dJY&J/w
51Testing软件测试网1aq:tv2Fie0}'z
三、定义参数的属性51Testing软件测试网:o j+L-r!c5qW s
创建参数完成后,就可以定义其属性了。参数的属性定义就是定义在脚本执行过程中,参数使用的数据源。在Web用户脚本中,你既可以在基于文本的脚本视图中定义参数属性,也可以在基于图标的树形视图中定义参数属性。下面的过程将教你如何在基于本文的脚本视图中定义参数属性。51Testing软件测试网"]G ]K sQ7oKq
在基于文本的脚本视图中定义参数属性步骤:
v"Y8} L2mO6Yw^Q01、 在参数上点击右键,有菜单弹出。
hp"m'j9g2W-K02、 在弹出的菜单中,选择“Parameter Properties”。参数属性对话框打开,显示和当前参数类型相关的属性。51Testing软件测试网"l4y)m+k9p:W
3、 输入参数的属性值。
tt1Y,_w.NL"G04、 点击“Close”关闭参数属性对话框。
a4s];Zz:D,C0在Web用户脚本的树形视图中定义参数的属性:51Testing软件测试网pX|;vY*x,E#?!}
1、 将关标定位在参数上,然后点击右键,选择“Properties”。属性对话框打开。
5[S ]ZS02、 点击要定义属性的参数旁边的表格形状按钮,点击右键,选择“Parameter Properties”。参数属性对话框打开,和参数类型相关的属性显示出来。51Testing软件测试网M1@N-X chz
3、 输入参数的属性。51Testing软件测试网'[:a7Y x2ZL
4、 点击“Close”关闭参数属性对话框。51Testing软件测试网ZX+W8@ma,v u)Jc
使用参数列表:  使用参数列表可以在任意时刻查看所有的参数,创建新的参数、删除参数,或者修改已经存在参数的属性。
A]?+V)T{01、 点击参数列表按钮或者用“Vuser>Parameter List”。参数列表对话框打开。51Testing软件测试网3I4@$Ynz aHH;ZrG
2、 要创建新的参数,点击“New”按钮。新的参数则被添加在参数树中,该参数有一个临时的名字,你可以给它重新命名,然后回车。设置参数的类型和属性,点击“OK”,关闭参数列表对话框。51Testing软件测试网s*n G @5X%x Q2X_O1V
注意:不要将一个参数命名为“unique”,因为这个名称是用户脚本生成器本身的。用户脚本生成器创建新的参数,但是不会自动用该参数在脚本中替换任意选中的字符串。
k(^HT[C:t|$S03、 要删除已有的参数,那么,要先从参数树中选择该参数,点击“Delete”,然后确认你的行为即可。51Testing软件测试网U6t$Be1Z&X*Sep
4、 要修改已有参数,那么,要先从参数树中选择该参数,然后编辑参数的类型和属性。51Testing软件测试网9b Mu-yny

u ta Fo2f$Tb0
"I8gv,_s.Xr051Testing软件测试网!?Q? p$} B pJ AN
四、理解参数的类型  在你定义参数属性的时候,要指定参数值的数据源。你可以指定下列数据源类型的任何一种:
'mi0B8Kye{Fb0Internal Data―― 虚拟用户内部产生的数据。51Testing软件测试网bo/K]7sZn
Data Files ――存在于文件中的数据。可能是已存在的文件或者是用脚本生成器新创建的。
d!{4j*u'oJ)TLZ0User-Defined Functions―― 调用外部DLL函数生成的数据  Internal Data包括以下几种:
H\2@ga_Yj6}01、 Date/Time  Date/Time用当前的日期/时间替换参数。要指定一个Date/Time格式,你可以从菜单列表中选择格式,或者指定你自己的格式。这个格式应该和你脚本中录制的Date/Time格式保持一致。51Testing软件测试网:G7c9aR_!\1e e D
2、 Group Name  Group Name 用虚拟用户组名称替换参数。在创建scenario的时候,你可以指定虚拟用户组的名称。当从用户脚本生成器运行脚本的时候,虚拟用户组名称总是None。51Testing软件测试网#\$^m#Fp^J$OC
3、 Load Generator Name  Load Generator Name用脚本负载生成器的名称替换参数。负载生成器是虚拟用户在运行的计算机。51Testing软件测试网_zJ0f@/A#m
4. Iteration Number  Iteration Number用当前的迭代数目替换参数。
qH"}AC5O&j05、 Random Number  Random Number用一个随机数替换参数。通过指定最大值和最小值来设置随机数的范围。
,uG$uZ e#^)b06、 Unique Number  Unique Number用一个唯一的数字来替换参数。你可以指定一个起始数字和一个块的大小。
Kk2Kd!f-n7PDI_07、 Vuser ID  Vuser ID用分配给虚拟用户的ID替换参数,ID是由Loadrunner的控制器在scenario运行时生成的。如果你从脚本生成器运行脚本的话,虚拟用户的ID总是-1。51Testing软件测试网 aEPO8])sQ
51Testing软件测试网nE3IP&K3EgD!pP
五、 数据文件  数据文件包含着脚本执行过程中虚拟用户访问的数据。局部和全局文件中都可以存储数据。可以指定现有的ASCII文件、用脚本生成器创建一个新 的文件或者引入一个数据库。在参数有很多已知值的时候数据文件非常有用。数据文件中的数据是以表的形式存储的。一个文件中可以包含很多参数值。每一列包含 一个参数的数据。列之间用分隔符隔开,比如说,用逗号。  对数据文件设置参数属性  如果使用文件作为参数的数据源,必须指定以下内容:文件的名称和位 置、包含数据的列、文件格式,包括列的分隔符、更新方法。  如果参数的类型是“File”,打开参数属性(Parameter Properties)对话框,设置文件属性如下:
FC ~;A,a*m` W"m${01、 在“File path”中输入文件的位置,或者点击“Browse”指定一个已有文件的位置。缺省情况下,所有新的数据文件名都是“parameter_name.dat”,注意,已有的数据文件的后缀必须是.dat。51Testing软件测试网XO X6M0r@Co

Fk3j*d2m^+Y051Testing软件测试网?8hOgE$f4u
2、 点击“Edit”。记事本打开,里面第一行是参数的名称,第二行是参数的初始值。使用诸如逗号之类的分隔符将列隔开。对于每一新的表行开始一行新的数据。   注意:在没有启动记事本的情况下如果想添加列,就在参数属性对话框中点击“Add Col”,那么“Add new column”对话框就会弹出。输入新列的名称,点击“OK”。脚本生成器就会添加该列到表中,并显示该列的初始值。51Testing软件测试网\N#i/w Bt
51Testing软件测试网\Gm\x6R
51Testing软件测试网OH"h2x*By
3、 在“Select Column”部分,指明包含当前参数数据的列。你可以指定列名或者列号。列号是包含你所需要数据的列的索引。列名显示在每列的第一行(row 0)。51Testing软件测试网$z Vw]#@V"sH

z9~ZaR c3g051Testing软件测试网qBmH$c$D)q
4、 在“Column delimiter”中输入列分隔符,你可以指定逗号、空格符等等。51Testing软件测试网H7V*Q p.z9X
51Testing软件测试网r.@*`])Te

K8{-[8aLI iv05、 在“First data line”中,在脚本执行的时候选择第一行数据使用。列标题是第0行。若从列标题后面的第一行开始的话,那就在“First data line”中输入1。如果没有列标题,就输入0。51Testing软件测试网7E;G9ag2w0{-W"`8Gq!Zv x
51Testing软件测试网 I:qi] A,K;@a

0|-g-msppn(N06、 在“Select next row”中输入更新方法,以说明虚拟用户在脚本执行的过程中如何选择表中的数据。方法可以是:连续的、随机的、唯一的、或者与其它参数表的相同行。51Testing软件测试网%i7@ UyK%_R3n$L
6.1、 顺序(Sequential):该方法顺序地给虚拟用户分配参数值。如果正在运行的虚拟用户访问数据表的时候,它会取到下一行中可用的数据。
Qi+O!S&fU m*g$fo06.2、 随机(Random):该方法在每次迭代的时候会从数据表中取随机数
A M$n5N3op06.3、 使用种子取随机顺序(Use Random Sequence with Seed):如果从Loadrunner的控制器来运行scenario,你可以指定一个种子数值用于随机顺序。每一个种子数值在测试执行的时候代表了一 个随机数的顺序。无论你何时使用这个种子数值,在scenario中同样的数据顺序就被分配给虚拟用户。如果在测试执行的时候发现了一个问题并且企图使用 同样的随机数序列来重复测试,那么,你就可以启动这个功能(可选项)。
q(tuYG"O06.4、 唯一(Unique):Unique方法分配一个唯一的有顺序的值给每个虚拟用户的参数。
u+VGI,Mb&m4I/`%v06.5 、与以前定义的参数取同一行(Same Line As ):该方法从和以前定义过的参数中的同样的一行分配数据。你必须指定包含有该数据的列。在下拉列表中会出现定义过的所有参数列表。注意:至少其中的一个参 数必须是Sequential、Random或者Unique。51Testing软件测试网P*[ qWy
如果数据表中有三列,三个参数定义在列表中:id1,name1和title1,如下:。51Testing软件测试网#mTv#NE]9|)[(N!H
ID Name Title
&\"] K0d)Fz&g_"IB+[]0132 Kim Manager
k(\ID5o-S%I0187 Cassie Engineer
N,[Ri E%fG0189 Jane VP51Testing软件测试网9? i._+d}
对于参数id1,你可以指示虚拟用户使用Random方法,而为参数name1和title1就可以指定方法“Same Line as id1”。所以,一旦ID“132”被使用,那么,姓名(Name)“Kim”和职位(Title)“Manager”同时被使用。51Testing软件测试网W8d!un6b0U\:|T(~
51Testing软件测试网h+clyw|
51Testing软件测试网1a$R:G;~C)p
7、Updta value on数据的更新方法51Testing软件测试网 \2}\RbG D
7.1、Each iteration――每次反复都要取新值。51Testing软件测试网0VowC7f
7.2、Each occurrence――只要发现该参数就要重新取值。51Testing软件测试网`"]8Y;`w e7X%k
7.3、Once――在所有的反复中都使用同一个值
B#~;G|Aid]051Testing软件测试网Zk(kF@7\.i ^
51Testing软件测试网bA1st4TI a#x
8、When out of values超出范围:(选择数据为unique时才可用到)
n^!nw'Q0w08.1、Abort Vuser――中止51Testing软件测试网4Z.F3^$um"?#r
8.2、Continue in a cyclic manner――继续循环取值
8KGAx:\ O0g&]|/h!ga08.3、Continue with last value――取最后一个值51Testing软件测试网yhHa6Q Gw;@7Vu

4@ q,['s"dYr0
/n.}(@s/f|\gF${09、Allocate Vuser values in the Controller在控制器中分配值:(选择数据为unique时才可用到)

TAG:

 

评分:0

我来说两句

Open Toolbar