性能测试流程,瓶颈分析
1.规范的性能测试流程
获得测试需求→测试计划→测试环境搭建→测试用例设计→测试数据准备→测试脚本编写→测试脚本执行→瓶颈分析定位→测试结果反馈→测试报告
2.流程节点解释
①获取测试需求:
提出人:甲方/业务方+开发人员
依据系统后期可能达到的访问量(甲方/业务方),以及系统架构、数据库,服务器等(开发人员)。确定“核心业务场景”以及“测试指标”。
②测试计划:
需“项目经理,甲方/业务方,测试人员”沟通确认。
③测试环境搭建→测试用例设计→测试数据准备→测试脚本编写→测试脚本执行:
这部分和功能测试流程大体一致。
侧重点在于测试环境的搭建(压力机构建),测试数据准备,脚本编写。
④瓶颈分析:
这是很重要的一个环节。
性能测试不是一蹴而就的,要达到压测需求,需反复调优和压测。
开始压测前,需要设置压力
ulimit -n //查看Linux操作系统连接数
以下是我个人项目总结的几点:
1.压力机性能需满足压测需求
2.本地压测(脚本放在系统服务器上执行),排除网络因素,测试系统的健壮性。
3.模拟真实的业务场景(eg:设备是连接手机热点上报数据,压力机的网络连接为手机热点)
4.CPU上不去,脚本运行大量失败。(需经理和开发人员进行代码审核)
5.低并发,CPU过高。(需代码调优)
测试人员可以在服务器上,用top命令找出CPU占用率最大的线程。
top //找到CPU占用率最大进程的PID,或者是待测脚本的PID top -p [PID] //只监控这个PID H //查看当前进程的线程信息,找到CPU消耗最高的线程ID jstack 11567 [PID] //做dump,输出整个进程信息
这样查出来的线程编号是:
线程ID转换为十六进制 = dump文件中的nid = 内存消耗最大的代码块,可以截取此部分给开发看