性能测试流程
1.提测申请
2.性能组接受申请排期
3.提测方提供相关文档:要压测的接口的showdoc、部署架构图、预期QPS错误率的值(如果没有可提供prod环境的PV、UV)
4.接受资料后,制定测试计划,包括:测试时间、压测接口、压测环境配置、场景(多长时间、多大并发)
5.通知上下游和devops等,确认devops关闭告警功能
6.按照设计的场景执行测试,测试时关注服务器指标:比如;jstat、ps -ef,执行前告知devops,方便devops帮拉取dump文件
7.执行完成后,如果性能表现良好,则继续,不良好则拉取dump文件 ,然后放到MAT(Eclipse Memory Analysis Tools)中查看报错,可以把报错的原因发给开发,让开发照对应的可能是SQL语句、也可能是代码的某个方法进行排查,执行测试的过程中,每日产出测试过程报告,报告包含内容:测试进度范围、目前的问题以及可能出错的原因
8.开发针对对应的错误调优后,再进行新一轮的压测,看指标是否ok,不ok的话继续MAT分析dump文件,数据ok的话,就可以出具最终的测试报告,包含:测试范围、测试场景、遇到的问题级对应的解决方案、目前的服务表现QPS、错误率、资源占有率等、压测前后的各个指标的对比图
9.归档压测结果,以便下次追踪,完成本次测试任务
选择是否是本机进行压测的几个注意点:
1.本机是否可以连接到服务器
2.本机的网络带宽是否足够,如果不够,那就选被测服务所在机房的一台肉鸡进行压测
3.如果几十几百的并发的活,本机的硬件也能将就的支持
ps:很多时候,其实导致压测上不去的原因是代码问题,比如:同步异步没有做好,多线程没有处理好之类,或者是么有索引,慢查询等导致的