性能测试经验总结

性能测试经验总结

第一步:计划测试

1、明确压力点,根据压力点设计多少种场景组合

2、把文档(包括多少种场景组合、场景与场景组合条件的对应表)写好 3、如果监测UNIX机器,在被监测的机器需要安装监测Unix的进程

4、让开发人员帮助我们准备测试数据或他们写相关的文档我们来准备数据

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

6、针对每一个模块包括四个子文件夹:如模块A下包括“脚本”“场景”“结果”“图表” 四个子文件夹,每个子文件夹储存对应的文件,如下表所示

其中:结果名“1场景”是在场景中的“Results Setting”中设置的,具体的设置见“建立场景”部分,这里也可以有另外一种方法:在打开模板设置,如下:

选中“Automatically save the session as:”并且在“%ResultDir%”后面填写你想保存的文件名,当你打开某个lrr文件时,系统自动在当前目录中生成一个文件保存分析图表,如下图所示:

第二步:生成测试脚本

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

2、录制脚本后,想查询某个函数的原型,按“F1”键 3、确认脚本中哪些参数是需要进行参数化的(最好能可以和开发人员一起确认) 4、在脚本参数化时把函数web_submit_data()中的ITEMDATA后面的数据参数化,因为这些数据是传递给服务器的,当然也可以把一个函数中的所有相同变量都替换掉

5、脚本中无用的部分用“/*”“*/”“//”注释掉,但最好不要删除 6、调试脚本遵循以下原则:

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

确认在VU里SUMI(单用户多循环次数single user & multi iteration) 确认在controller中MUSI(多用户单循环次数multi user & single iteration) 确认在controller中MUMI(多用户多循环次数 multi user & multi iteration) 7、事务的名称取的有意义便于事务之间的区分,把所有的事务名都记录在一起,便于在测试结果概要中区分它们,这要写成一个表:某次测试有哪些模块,每个模块中有哪些事务(见对应的“关系表”) 8、在

“Parameter List”中可以选择参数类型“Random Number”,

使某一个参数取设定的范围内的随机值

第三步:建立场景

1、 把场景名称编号,并制定出一份场景名称和场景条件组合的对应表。比如,场景m对应

于“某一模块_xx个vu _分z台machine”(见“关系表”中的例子) 2、 根据上面的对应表把场景设置好,需要设置的要素如下:总体多少个用户、分多少个组、

每个组有多少个用户、分几台机器运行、每个脚本迭代多少次、是否回放think time时间、检查Parameter List中每个参数设置是否正确、参数从表中取值间隔是否正确、是否选中“Initialize all Vusers before Run”

3、 测试结果应该保存为“m场景0,m场景1,…”

4、 把虚拟用户分散到几台机器上和在一台机器上面都要进行测试,因为有可以效果不同 5、 场景中如果有需要改动的地方,必须新建一个场景(建议使用“另存为”,然后再修改结

果文件名,再选择相应的脚本),并把场景按顺序编号,先维护好场景与场景组合条件的

对应表,以便以后的查找,并且在结果

“Results Setting”中设

置的结果名与场景名相同。建议在“Results Setting”中选中“Automatically create a results directory for each scenario executeon”让它每次自动累加,不建议选中“Automatically overwrite existing results directory without prompting for confirmation”,因为我们不要覆盖掉以前的测试结果,把它保存下来以便有个根据。

6、 需要注意的地方:当在“Parameter List”中的“Select next row”选中“Unique”时,如

果再在“Edit Schedule\\Schedule by Scenario\\Duration”中选中第二项“Run for XX after the ramp up has been completed”时系统就会报错,提示“Unique”类型不相符。 7、 在“Run-time Setting”设置中,“General”中的“Pacing”非常有用,可以设置每次迭代

之间相隔多少时间,也可以是随机的取值

8、 建议:把“Parameter List”和“Run-time Setting”中的所有设置都搞熟悉,这样便于以

后对脚本和场景进行设置

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

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4