性能测试经验总结

上一篇 / 下一篇  2011-12-09 10:33:10 / 个人分类:性能测试

第一步:计划测试

$oN.R7D:H9?0  1、明确压力点,根据压力点设计多少种场景组合

y"v8?-p6JK;~D*u3Z051Testing软件测试网 n"v1K!N#p?

  2、把文档(包括多少种场景组合、场景与场景组合条件的对应表)写好51Testing软件测试网9Zd!?J'uaD j+R[(KR

51Testing软件测试网@:XTu |w

  3、如果监测UNIX机器,在被监测的机器需要安装监测Unix的进程

3?`c\#w0

+qKa*zLW(Ik0  4、让开发人员帮助我们准备测试数据或他们写相关的文档我们来准备数据51Testing软件测试网*r/Z5s]$t4O2Q3d4l

51Testing软件测试网xc.V/L8F,g$g)H:Ma+r7x

  5、让开发人员做一个恢复数据的脚本,以便于我们每次测试的时候都能够有一个相同的环境

+Qq]/t+e ? Nh0

&Y z})oj0  6、针对每一个模块包括四个子文件夹:如模块A下包括“脚本”“场景”“结果”“图表” 四个子文件夹,每个子文件夹储存对应的文件51Testing软件测试网9UdLZ;O-c

zB ^(_ ?)R$PG0  第二步:生成测试脚本51Testing软件测试网+Q L*H \ P nZ

E6nMP!rN4m4y9L L0  1、把登陆部分放到“vuser_init”部分,把需要测试的内容部分放到“Action”部分执行;但是如果是模拟多个用户登陆系统,则要把登陆部分放到Action部分来实现

C#Xr1G-H'zC0

9j![/g9aNs0  2、录制脚本后,想查询某个函数的原型,按“F1”键51Testing软件测试网dvZi)Pe(J

51Testing软件测试网SQ-Sl(?

  3、确认脚本中哪些参数是需要进行参数化的(最好能可以和开发人员一起确认)51Testing软件测试网5Wj7me&X o!Tm^b

3D%Db| vQm0  4、在脚本参数化时把函数web_submit_data()中的ITEMDATA后面的数据参数化,因为这些数据是传递给服务器的,当然也可以把一个函数中的所有相同变量都替换掉51Testing软件测试网3{+@j@Q"D0~1A8ot

3q8_F"pMC2s fv0  5、脚本中无用的部分用“/*”“*/”“//”注释掉,但最好不要删除

o,OrEw)@0

mmT P5oF9Sq U6K0  6、调试脚本遵循以下原则:

7{UP&qh$p.]"ef*aP{051Testing软件测试网;I(K+M t[$oEa.F&D

  确认在VU里SUSI(单用户单循环次数single user & single iteration)

y,Cf:~e@%^C051Testing软件测试网c Q)OPCI"Pe

  确认在VU里SUMI(单用户多循环次数single user & multi iteration)

6JpzhnO | C3Z0C0

,?3WRRNDh0  确认在controller中MUSI(多用户单循环次数multi user & single iteration)51Testing软件测试网QD"be _Me)t8R2v

51Testing软件测试网]Sf.r3g6p

  确认在controller中MUMI(多用户多循环次数 multi user & multi iteration)

go\(n#p_^,_Xh0

F5tV7zV"cv0  7、事务的名称取的有意义便于事务之间的区分,把所有的事务名都记录在一起,便于在测试结果概要中区分它们,这要写成一个表:某次测试有哪些模块,每个模块中有哪些事务(见对应的“关系表”)

js.N@S^ y}l051Testing软件测试网8L/iG,D v|

  8、在“Parameter List”中可以选择参数类型“Random Number”,使某一个参数取设定的范围内的随机值

\DYv)B/`:I$W051Testing软件测试网xL?jnbMu

  第三步:建立场景

3CZ9~-D/n9]5^0

A2cmw#`y7}~ G0  1、 把场景名称编号,并制定出一份场景名称和场景条件组合的对应表。比如,场景m对应于“某一模块_xx个vu _分z台machine”(见“关系表”中的例子)

1x#@qM oz0

/cjpV)h+tIS0  2、 根据上面的对应表把场景设置好,需要设置的要素如下:总体多少个用户、分多少个组、每个组有多少个用户、分几台机器运行、每个脚本迭代多少次、是否回放think time时间、检查Parameter List中每个参数设置是否正确、参数从表中取值间隔是否正确、是否选中“InitializeallVusers before Run”

l*x6Nk[A3[0

#W#kf/S;Wn9Y GTG:s0  3、 测试结果应该保存为“m场景0,m场景1,…”51Testing软件测试网6_op$k J:dR

51Testing软件测试网"gk9x;L:FwgQ4p

  4、 把虚拟用户分散到几台机器上和在一台机器上面都要进行测试,因为有可以效果不同

9G*k)WyJOG4nm,f051Testing软件测试网5PD0Md)E'Ck z(|

  5、 场景中如果有需要改动的地方,必须新建一个场景(建议使用“另存为”,然后再修改结果文件名,再选择相应的脚本),并把场景按顺序编号,先维护好场景与场景组合条件的对应表,以便以后的查找,并且在结果“Results Setting”中设置的结果名与场景名相同。建议在“Results Setting”中选中“Automatically create a results directory for each scenario executeon”让它每次自动累加,不建议选中“Automatically overwrite existing results directory without prompting for confirmation”,因为我们不要覆盖掉以前的测试结果,把它保存下来以便有个根据。51Testing软件测试网8G\!p[,j4p0B

]gC2|7l M%U:s0  6、 需要注意的地方:当在“Parameter List”中的“Select next row”选中“Unique”时,如果再在“Edit Schedule\Schedule by Scenario\Duration”中选中第二项“Run for XXaftertheramp up has been completed”时系统就会报错,提示“Unique”类型不相符。51Testing软件测试网 BH1g:usPQ

51Testing软件测试网_J Z;KGA8|vF

  7、 在“Run-time Setting”设置中,“General”中的“Pacing”非常有用,可以设置每次迭代之间相隔多少时间,也可以是随机的取值51Testing软件测试网!T)l!ur,{ N6Q#|Z.X

51Testing软件测试网6DL1h-yk`

  8、 建议:把“Parameter List”和“Run-time Setting”中的所有设置都搞熟悉,这样便于以后对脚本和场景进行设置51Testing软件测试网%D~Fg;eia&Yz

51Testing软件测试网7g2L4^k6CT2N;{

  设计“Parameter List”时的小技巧:即在“Allocate X values for each Vuser”时,尽量

!g0F4G K!Ex#cxi051Testing软件测试网#a!m{XL7yfD,x

  1、 把它的间隔在数据容许的范围内取大些,这样可以做从一次迭代到最大值迭代,而且对脚本没有什么影响

k!J'Zj+u*Hl0

5K5~Y:dG3_O] QI1K0  10、当一个脚本中有多个事务,在事务前面增加集合点时需要一点技巧。或者我们把脚本复制几个,或者我这样做:测试前面的事务的压力时,把后面的事务前的集合点设置为不激活状态;在测试后面的事务的压力时,把前面的事务的集合点设置为不激活状态,另外最好不选中Initialize all Vusers before Run,具体参见Controller中的“Scenario/Rendezvous”,及用户手册(按F1)

Z"E8N2T&Ahw m&Y*|051Testing软件测试网7E]5e-v~4sR*{(^0c

  11、把持续时间从最后60秒改为整个场景的时间,右键单击某个图,选择“Configue”,修51Testing软件测试网H'Bp{v.Gh#o

51Testing软件测试网)H @#JD3T

  改Graph Time即可

^:U"|!j%i8b1O0

+E;ghP3I X;?8P(y0  12、每次从一个场景修改后保存为另一个场景时别忘记把结果保存文件名修改相对应的文件名。在设置结果保存文件名时有一个技巧:如果你打开这个窗口时,点击确定则系统会

GB$l8PD051Testing软件测试网6z6V*Gx7k

  默认以“4场景2”为基点向后加“4场景20”“4场景21”等等,但是如果你把结果文件名后面的数据去掉,改为“4场景”,点击确定后,系统会自动搜索是以“4场景”开头的文件名,并在它的后面继续增加,比如把它改为“4场景”时,下次结果保存在“4场景3”中。而且他在搜索的时候搜索以“4场景”开头的文件名,从0开始,有的话就不取代而跳过,没有的话就取代。

D;\K @~wH[LD051Testing软件测试网.tVPZ9n/p

  第四步:运行场景

?Cn s/MX o051Testing软件测试网kKX*z&Gq{%j6O

  1、 运行场景前需要注意的事项:每个组的虚拟用户数、迭代次数、think time、参数化时的取值间隔、执行恢复数据的脚本、确认虚拟机的LoadRunner Agent Service打开51Testing软件测试网 y2I9`2u'Bs6_Z

51Testing软件测试网*k(e'Q6S4M@!tg}

  2、 如果监测Unix,运行场景前需要启动监测Unix进程,启动的命令“rpc.rstatd”、查看这个进程是否启动的命令“rpcinfo –p”51Testing软件测试网9TK8a$y M3Y.FW

2A n'wgT}(CE-}0  3、 运行前使Generator机器处理Ready状态51Testing软件测试网sD F+c ? R!\P~8}

51Testing软件测试网&w!ge"a)N5j"W Be5}

  4、 确认被监测的机器已经连接上去,并且添加自己所需要的计数器

\H)vuIHVV;n,~d0

0U[1NL#s%E#` f(WF Z0  5、 运行之前一定要确认系统中压力点的数据量是多少51Testing软件测试网6L+NW0Mb]AtA

*m mi5f%ww3f(Y&C0  6、 确认以上都正确时再运行测试场景

1jSGU!Z051Testing软件测试网 gGr%Uy*i8B

  第五步:监视场景

q;_ }2i+zfb:~051Testing软件测试网Sr{/?A,@

  1、打开 "Passed Transactions”或“Failed Transactions”,可以随时观察到事务的运行状态

r)c-zH+n0mx(j0

5C5~pt!Cr N1I0  第六步:分析测试结果

x6^niG]'M-B0

afPj'`fwk;]0  1、 打开Analysis后,把经过数据处理的结果图表保存到“图表”文件夹,并且文件名和场景名、结果名相同,这样便于以后的查阅。也可以省去每次进行数据处理的时间。51Testing软件测试网v'oUV [

4P'X6ggW;Jtt0  可以通过点击界面上的 “View Run Time Setting”可以看到此场景运行时的一些场景51Testing软件测试网:o}1AQ5BCX)n ]X

51Testing软件测试网$ZU2Sv8DW

  1、 设置51Testing软件测试网,@.mE({ R;e8O

wV3IKDzK g3yX0  2、 在关联图表时可以自动调节每个元素的比例,点击右键,选择即可

%Kq9^#d'?051Testing软件测试网f/? dBY3F

  3、 每次测试结束后确认所做的操作是正确的,确认正确后再分析结果

&?g&l5o;F Cu3U~0

'W#H@#@3g9R0  4、 在结果文件夹中为每个场景建立一个文档,把每次运行时的情况记录下来以便于写测试报告,尤其运行错误的原因记录下来,并把开发人员所做的修改也记录下来以便知道开发人员做了些什么修改51Testing软件测试网.jw5@~$[5SV


TAG:

 

评分:0

我来说两句

Open Toolbar