LoadRunner 参数化详解

可能稍微对LR 有些了解的人都知道LR 参数化的功能,今天请跟我来一起好好理一下。

     首先,咱们先说一下为啥要用参数化?假如您录制了一个登录的脚本,如下所示,

web_submit_form("do_login", 
		"Snapshot=t2.inf", 
		ITEMDATA, 
		"Name=username", "Value=jim_daniel", ENDITEM, 
		"Name=password", "Value=jim_daniel", ENDITEM, 
		"Name=_mw_submit", "Value=Sign In", ENDITEM, 
		EXTRARES, 
		LAST);

  代码中的用户名和密码都是固定的一个值,如果在controller 中使用该脚本跑场景的话,那所有的Vuser 都会使用脚本中的同一个用户名(代码中加下划线的部分)去登录,这和我们的愿望有些差别,我们期望的是不同的vuser 使用不同的用户名登录,这样就跟真实的场景一样了,那么这就是为什么要用参数化的原因,我们可以把我们希望使用的用户名和密码预先设置在两个参数中,然后设置参数值的分配方式和更新方式以使得不同的用户使用不同的用户名去登录。

      好了,明白了为什么要用参数化,下面咱们具体说一下参数化的使用方法。

      每个Vuser 去参数表中取的参数值的方式是由参数值的分配方式(Select next row)和更新方式(Update value on)共同决定的。参数值的分配方式有Sequential(顺序的),Random(随机的),Unique(唯一的)三种方式。

  • Sequential(顺序的):每个Vuser 顺序的从参数表中取得参数值。如参数表中有A, B, C三个值,Vuser1 取的参数值是A, Vuser2 取的值是B,Vuser3 取的是C, 如果参数值的数量小于Vuser的数量时,那么Vusers 会再从头开始循环取得参数值。
  • Random(随机的):调用参数时,随机地分配参数表中的一个参数值。
  • Unique(唯一的):顺序的为参数分配一个唯一值。

提示:当数据分配方式选择Sequential 和Random 时,所有Vuser 从同一个参数值集合中取按照分配方式取得参数值;当数据分配方式选择Unique(唯一的)的时候,每个Vuser 获得参数值的集合是不一样的,当你选择此种分配方式时,Allocate Vuser values in the controller部分会可用(如下图所示),有两种方式一种是自动分配数据块的大小(默认的数据块的大小=Iteration 的次数),另一中是指定为每个用户分配多大的数据块。

 

 

好了说完数据分配方式了,下面说一下数据更新方式。数据更新方式有以下几种:Each iteration,Each occurrence(只在参数类型为File时使用), Once。下面把数据分配方式和数据更新方式结合起来列出每种结合方式的结果应该是怎么样的:

       

        更新方式

                                   分配方式

(Sequential)顺序的

(Random)随机的

(Unique)唯一的

Each iteration(每个迭代)

在每次迭代中每个用户顺序的去取下一个值。

每次迭代中,每个用户随机去取参数值。

每个迭代中每个用户从唯一的位置去取参数值。(这个地方不会去判断参数表中的数据是不是重复,它所说的唯一是指的取的位置的唯一性,而不是数据。也就是说如果一个用户被分配了两个重复的值,那么在第二个迭代中也是会取第二个值的)

Each occurrence(只适用于数据文件类型的参数)

当参数出现时,每个用户顺序的去取下一个参数值,即使是在一个迭代中。

当参数出现时,每个用户随机的去取下一个参数值。即使是在一个迭代中。

用户从分配的数据块中取唯一值当遇到参数时,不同的迭代也算是遇见。注意这里是会判断参数表中的数据是不是重复的,不允许取的新值是跟已经取过的数据是重复的。

Once(一次)

每个用户使用的都是参数表中第一个值,并且每个迭代中都会保持这个值。

每个用户使用随机分配的值(这个值会在整个参数表中选取),并且每个迭代中都会保持这个值。

每个用户使用唯一的值(这个值会在分配给他的数据块中选取),每个迭代的值都会保持这个值。

 

 

posted @ 2013-11-04 09:09  AmyOrchid  阅读(678)  评论(0)    收藏  举报