LR参数化后取值规则小记

  对参数化的取值,只有一个用户的情况能分清,但是多用户多迭代就搞不懂,特意使用Parameter List中自带的参数化模拟器Simulate Parameter进行简单的实验,3条数据 + 4个用户 + 4次迭代,具体情况如下。

  3条数据准备如下,Select column采用的By number :1。

Sequential

&

Each iteration

 

注:此时“Continue with last value”失效

Sequential

&

Each Occurrence

模拟器中无法进行,只能在Controller中验证。

对每一个Vuser而言,每遇到参数一次(哪怕是在lr_eval_string()函数中使用),就会顺序更新一次该参数值。

Sequential

&

Once

 

Radom

&

Each iteration

 

Radom

&

Each Occurrence

对每一个Vuser或者每一次迭代而言,每遇到参数一次,就随机更新一次该参数值。

Radom

&

Once

 

Unique

&

Each iteration

 

Allocate Vuser values in the Controller默认为:Automatically allocate block size。

When Out of Values默认为:Continue with last value。

这两个参数对于Unique+iteration和Unique+Occurrence很重要。

Unique

&

Each Occurrence

对每一个Vuser或者每一次迭代而言,每遇到参数一次,就随机更新一次该参数值。

 

Unique

&

Once

 

注:无论多少次迭代,vuser1取第一条;Vuser2取第二条,以此类推……

结合上面的实验结果,总结如下。

  (1)Select next row决定获取数据的方式,是顺序还是随机或者唯一不变,Update value on决定更新数据的时机,是每次迭代更新还是参数出现更新或者迭代不更新。

  (2)若Select next row为“Sequential”,则对于任何一个vuser而言,都是从数据表的第一条数据顺序读取,至于什么时候读取新值,取决于Update value on。

  (3)若Select next row为“Unique”,则必须使数据条数满足当前设定否则会报错;Unique & Each iteration则数据条数至少要为:Vuser个数 * iteration次数。

  (4)若Update value on 为“Once”,则每次迭代不更新数据。

Allocate Vuser values in the Controller

(1)Automatically allocate block size(自动分块)。

  系统自动统计一个Vuser运行完毕所需要的参数的个数,也就是分块大小,然后顺序为每一个Vuser分配数据,这里假设所需参数为3。

  

  Vuser分到的参数不够,将在自己分的块中进行取值,这里的取值方式又包括“Continue with last value”都和最后一个取到的参数值保持一致;“Continue in a cyclic manner”在该Vuser中循环取值。

(2)Allocate ** values for each Vuser(分配**块给每个Vuser)。

  自定义块大小,块内数据不足与自动分块处理方法一致。

  最后,附上好图三枚,很赞的,还总结了Each Occurrence有多参数的情况~                                                                                                                                             

  

   对参数化的取值理解还是很浅薄的,希望在今后的工作学习中能深入理解,欢迎各路大神指导~

 

posted @ 2016-08-09 15:03  天使未必在场  阅读(1643)  评论(1编辑  收藏  举报