对于职业我们要有梦想,不抛弃不放弃。人生才会有乐趣。

loadrunner脚本的参数化

上一篇 / 下一篇  2010-12-10 09:32:18 / 个人分类:性能测试

如果用户在录制脚本过程中,填写提交了一些数据,比如创建一个新的document。这些操作都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的记录,这样做会被应用禁止,会出错,这样也不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入。参数化输入是一种不错的方法

参数化包含以下两项任务:

① 在脚本中用参数取代常量值。

② 设置参数的属性以及数据源。

参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。另外,不是所有的函数都可以参数化的。

我举一个例子来说明,还是我么上面那个脚本,

      web_submit_form("ScheduleCreationAction.do",

             "Snapshot=t12.inf",

             ITEMDATA,

             "Name=PTName", "Value=performance0001", ENDITEM,

             "Name=headerTempID", "Value=preProductionHeaderTemplate", ENDITEM,

             "Name=selectHeader", "Value=1", ENDITEM,

             "Name=schTempID", "Value=preProductionDetailTemplate", ENDITEM,

             LAST);

 

因为每次创建文档的时候,需要用不同的名字,系统禁止同名,如果同名就回出错,所以要把PTName值参数化,我们只要选中“performance0001”,然后点鼠标右键,选择“Replace with a parameter.”,出现以下窗口

 

  

 

参数类型解释:

DateTime:很简单,在需要输入日期/时间的地方,可以用DateTime类型来替代。

其属性设置也很简单,选择一种格式即可。当然也可以定制格式。

Group Name:暂时不知道何处能用到,但设置比较简单。在实际运行中,LoadRunner

使用该虚拟用户所在的Vuser Group来代替。但是在VuGen中运行时,Group Name

将会是None

Load Generator Name:在实际运行中,LoadRunner使用该虚拟用户所在Load

Generator的机器名来代替。

Iteration Number:在实际运行中,LoadRunner使用该测试脚本当前循环的次数来

代替。

Random Number:随机数。很简单。在属性设置中可以设置产生随机数的范围

Unique Number:唯一的数。在属性设置中可以设置第一个数以及递增的数的大小

注意:使用该参数类型必须注意可以接受的最大数。例如:某个文本框能接受的

最大数为99。当使用该参数类型时,设置第一个数为1,递增的数为1,但100

虚拟用户同时运行时,第100个虚拟用户输入的将是100,这样脚本运行将会出错。

注意:这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循

环之间的差值为1。举例说明:假如起始数为1,递增为5,那么第一个用户第一

次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7

依次类推。

Vuser ID:设置比较简单。在实际运行中,LoadRunner使用该虚拟用户的ID来代

替,该ID是由Controller来控制的。但是在VuGen中运行时,Vuser ID将会是–1

 User Defined Function:从用户开发的dll文件提取数据。

 File:需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据

我们将会重点介绍这种参数类型,这也是LR的缺省参数类型,就是把准备好的数据放在文件或者用sql语句从数据库中取出来,让VU来读取。Select next row”有以下几种选择:多个VU如何取值

 

 Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取

 Random:在每次循环里随机的读取一个,但是在循环中一直保持不变

 Unique:每个VU取唯一的值。注意:使用该类型必须注意数据表有足够多的数。比如

Controller中设定20个虚拟用户进行5次循环,那么编号为1的虚拟用户取前5

个数,编号为2的虚拟用户取6-10的数,依次类推,这样数据表中至少要有100

个数据,否则Controller运行过程中会返回一个错误。

 Same Line As某个参数(比如Name):和前面定义的参数Name取同行的记录。通常用在有关联性的数据上面。这个也是很有用的,比如有时候我们要求指定VU取读取指定数据,就可以这样定义:

创建参数文件共两列假设userIDDOCIDuserid设定取数方式是unique,DOCID则设成the same line as userid,如果第一行数据为0001,DOC1,则如果用户0001登录成功在打开文档时便会打开DOC1文档。

 

“Update value on”有如下几种选择:多次迭代如何取值

once在所有的反复中都使用同一个值

each iteration则每次反复都要取新值

each occurrence则只要发现该参数就要重新取值也就是如果一个action中有多个该参数每遇到一个就要重新取一个值。


TAG:

引用 删除 luxiliang   /   2012-06-13 14:04:18
5
引用 删除 zzx_testing   /   2011-09-05 14:33:26
5
引用 删除 zhirenchong   /   2011-02-15 10:59:27
1
引用 删除 changdr   /   2010-12-13 11:24:31
晕倒,还可以这样评分,只能评不能删除,本来想给个五分的
引用 删除 changdr   /   2010-12-13 11:23:29
-1
 

评分:0

我来说两句

Open Toolbar