一、创建文件夹
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的平均值的计算功能。
最后,还是要感谢下性能测试小组的同学给予的帮助,谢谢悟石和元壮,在这个项目中给我耐心的讲解和解释,让我了解很多性能测试知识。