消失的下雨天......

LR 中参数设置的更新方法和分配方法研究

上一篇 / 下一篇  2007-12-05 12:26:11 / 个人分类:软件性能测试

   最近在用LR性能测试的时候,总是在参数化问题上碰到一些问题,比如在参数化用户登陆时,照设置字面意思理解,选择了sequentialEach occurrence,以为每当一个VU碰到该参数就会顺序从参数表中取下一个值,结果导致执行测试时只有一个VU成功PASS,有时还在执行测试时,还会碰到"insufficient records for param 'OutputValue' in table to provide the Vuser with unique data"这样的错误,等等这些错误都是对LR中参数设置的更新方法和分配方法没有理解透彻.参考LR用户手册,但还是觉得有点糊涂,所以自己做了一些实践来加强对这些参数设置的理解.避免在以后工作中再碰到类似的错误.

e`X7Zq U;@pV0

   LR脚本中,我写了一段简单的C代码以供实践研究用,如下:

i5`;v6Z3WG0

Action()
T(xB(S4K4?8~0{
y&ue s.z%\f3|0 char * output1;
lrydVQ&p"dKY0 char * output2;51Testing软件测试网steyc"x
 char * output3;
9_PN)Y_cx TK7k0n0 output1 = lr_eval_string("{OutputValue}");51Testing软件测试网%K A`Y ej v @T
 output2 = lr_eval_string("{OutputValue}");51Testing软件测试网h0eGlx8K*I[ m
 output3 = lr_eval_string("{OutputValue}");51Testing软件测试网v&l @;d G9~
 lr_output_message("iteration%s: vu%s output1 is %s",lr_eval_string("{iteration}"), lr_eval_string("{vuID}") ,output1);
u J5Or(v]-v%E0 lr_output_message("iteration%s: vu%s output2 is %s",lr_eval_string("{iteration}"), lr_eval_string("{vuID}") ,output2);
*]4h U!s!ZD:j"X0 lr_output_message("iteration%s: vu%s output3 is %s",lr_eval_string("{iteration}"), lr_eval_string("{vuID}") ,output3);

_q3N!fi0

 return 0;51Testing软件测试网 C aQ,N+Gv'R
}

1u~]cdv0

    参数化了三个值:OutputValue,iteration,vuID,其中OutputValue是我们要研究的对象,其参数类型为File,参数表中设置了20个参数值,分别是001~020,其他两个参数作为辅助参数以方便在log中进行查找使用,参数类型分别为Iteration NumberVuser ID.51Testing软件测试网)Ee2p^:ypI9g

    为了在log中看到详细的参数替换信息,可以在run-time settings中点选Extended log -> Parameter substitution.

M3V:xlwn%q8sn0

1.    sequential分配方法:

C qJ(Dn:X4L+|bR6FC0

     场景设置:10VU,10次迭代51Testing软件测试网#G&yI%\U e#wnw:W'Z!d

迭代51Testing软件测试网rr4z+Z J

Each Iteration

3BUs a4r3Ic0

Each occurrence

]-i1v0R3X u&s$}w:h0B_0

Once

SXB.b#\,Z0

1st51Testing软件测试网"Vr S"b%a Q!v

所有VU在参数出现的所有位置都使用“001

;I9Wm%S9Dkp;~?0

所有VU在第一次参数出现的位置使用001,第二次参数出现的位置使用002,第三次参数出现位置使用003

hbs2k'qd9\0

所有VU在参数出现的所有位置都使用”001”51Testing软件测试网!ut E.u_i)f%V5Q d

2nd

c9E.AFI3s)p6|@0

所有VU在参数出现的所有位置都使用“00251Testing软件测试网2kxh-Pr.g9u*|

所有VU在第一次参数出现的位置使用004,第二次参数出现的位置使用005,第三次参数出现位置使用00651Testing软件测试网|)d@ Hb3p ~y

所有VU在参数出现的所有位置都使用”001”

$_T {KE9s6D0

其余的迭代51Testing软件测试网D/N o&wM;S

依次类推,当取完20个参数值后,所有的VU循环从头继续顺序取值51Testing软件测试网S#F~ANjeWT6k

依次类推,当取完20个参数值后,所有的VU循环从头继续顺序取值

S;y7_v%R.TX0

依次类推,所有VU在参数出现的所有位置都使用”001”

*V n"O-Mc9}0

结果说明:log分析来看,sequential的分配方法主要是针对所有的VU进行更新的.51Testing软件测试网!J'_.i x,l?'}F ~-U


TAG: 软件性能测试

lsl20032的个人空间 引用 删除 lsl20032   /   2009-02-25 18:29:51
那请问下哦,在脚本中只有一次使用到output,那是不是使用each iteration和each occurred方式更新是一样的结果呢?
 

评分:0

我来说两句

日历

« 2024-04-04  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 3331
  • 日志数: 4
  • 建立时间: 2007-12-02
  • 更新时间: 2007-12-07

RSS订阅

Open Toolbar