进行项目性能测试时的体验

发表于:2009-08-24来源:作者:点击数: 标签:性能测试项目体验
进入 性能测试 虚拟小组后,有幸跟着悟石和元壮参与了一次项目的实践,感觉做下来收获蛮多的,把它总结下来。 一、创建文件夹 1.在执行性能测试的 服务器 上创建项目的名称,如 D:\项目名称,下面创建四个文件夹,分别为data,image, result 和 script,分别
进入性能测试虚拟小组后,有幸跟着悟石和元壮参与了一次项目的实践,感觉做下来收获蛮多的,把它总结下来。

  一、创建文件夹

  1.在执行性能测试的服务器上创建项目的名称,如 D:\项目名称,下面创建四个文件夹,分别为data,image, result 和 script,分别用户存放性能数据,图像,脚本和执行结果。

  这样做是便于归类查找浏览,通常一台服务器上会存放好多个项目的执行。

  二、编写脚本

  1.这个提出来我主要是想说明下这次项目的脚本是在FF下跑的,是由于在性能测试执行阶段还不支持ie下打开界面。

  FF下录制脚本主要设置如下:

  new一个脚本的时候主要设置application type和 programe auguments 选择win32 applications和 firefox.exe所在的目录,如D:\Program Files\Mozilla Firefox\firefox.exe

  三、关注的参数

  (1)寻找并发用户数:

  1.首先通过递增用户找到load接近4,cpu接近75%时的压力下的并发用户数

  2.用这个并发用户数去执行1h/2h的性能测试

  3.用这个并发用户数去进行12h的稳定性测试

  (2)根据预期pv确定事务数:

  每秒平均值 =( (总PV量*80%)/(24*60*60*40%))/服务器数量=pv/s,每秒的峰值为每秒平均值×1.6得出。(不过关于这个计算模型还有待改进的地方,并不是每条产品线的产品都是这么适用的)

  pv/s等价转化到tps,得出需要满足的事务数

  (3)响应时间,需要小于0.5s

  (4)cpu:阀值为75%

  (5)load:阀值为4

  (6)内存:查看是否能正确释放内存,存在内存泄漏等。

  四、安装监控工具

  1.由于服务器上没有成功安装rstated工具,lr中就取不到load和cpu这些数据,所以替补的方法是安装record-load.sh脚本,来采集load和cpu数据。

  数据都是存放在cpu_load.list文件中。由于这个脚本没有提供平均值的计算功能,执行完成后需要复制出来在excel中计算平均值,已经提建议给性能测试组他们会改进脚本。

  2.安装jconsole监控java内存,稳定性测试需要开这监控。需要在服务器中配置一项:

  在/home/admin/dianping/bin jbossctl文件中

  JAVA_OPTS=”$JAVA_OPTS -Djava.awt.headless=true”

  JAVA_OPTS=”$JAVA_OPTS -Dsun.net.client.defaultConnectTimeout=10000″

  JAVA_OPTS=”$JAVA_OPTS -Dsun.net.client.defaultReadTimeout=30000″

  之后添加JAVA_OPTS=”$JAVA_OPTS -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=*.*.*.*”

  就ok了。打开jconsole后,主要查看内存——对内存使用情况和内存池”ps old gen”中的情况。能否正常释放内存。

  五、规范和模板

  1.可以参照——性能测试脚本制作和场景设置规范.doc

  2.脚本,测试结果,事务也有相应的命名规范,脚本命名为(应用名称+性能点名称),事务命名(性能点名称),

  测试结果命名规则为(应用名称+性能点名称+执行脚本时间+并发用户数+运行时间)

  3.模板——性能测试报告模板.doc和性能测试设计方案模板.doc

  六、查看日志

  1.查看debug日志(debug.log ):查看是否有报错信息

  2.查看超时日志(filter.log):查看是否超时。这里超时的判断看是否大于200ms,超时的概率有个计算公式:超时的概率=超时日志中超时的数目/事务数

  事务数可以在lr中的结果中有个查看总的事务数。超时的概率的阀值为10万分之1。大于这个概率的时候需要开发去查找超时的原因。

  七、linux命令

  1.我这次主要用到如下的linux命令:ls,cd ,cd .. ,su ,vi,tail -f ,ctrl+z。当然还有很多其他的命令,之后再去实践了。

  八、性能测试期间遇到的问题和心得:

  1.录制脚本碰到的疑惑:脚本中发表点评的内容显示成“?????????, ?????????”—— 这个就是输入的文字只是中文显示不出来,这样显示没有问题;

  2.对性能测试的各个参数点及对应的标准需要非常熟悉,这样好比有了一个预期结果和一个参照标准,执行测试过程中可以很快查出某个点的性能问题;

  3.shell脚本中建议增加一项LOAD和CPU的平均值的计算功能。

  最后,还是要感谢下性能测试小组的同学给予的帮助,谢谢悟石和元壮,在这个项目中给我耐心的讲解和解释,让我了解很多性能测试知识

原文转自:http://www.ltesting.net