**
一、性能测试流程
**
明确压测模型 -> 场景分析 -> 数据设计 -> 压测执行 -> 数据清理
1、压测模型分为两种:a、对于还未上线运营的新系统,我们一般会让应用的业务方或者产品经理给出一个预估的值,但是这个预估值需要评估是否合理;b、对于已上线运营的应用,我们一般会分析日常/节假日总请求量和峰值TPS数据来确定预估值,这样会接近实际场景
2、提前进行压测场景设计,调试好压测脚本,准备好压测数据
3、压测前需要发出压测通知,包括压测背景、压测时间、压测范围,邮件抄送运维、开发TL、相关开发
4、压测范围需要精确到所有涉及的链路服务名,涉及公用的中间件(MQ、Redis)需要说明
5、在没有数据隔离之前,压测数据需要清理,否则可能会对线上业务或者数据统计有影响
在性能测试需求分析中,
二八法则可以这样理解:每日80%的业务在20%的时间内完成
举个栗子:
电渠微信小程序首页压测指标估算:根据业务方给的数据,该小程序每日有300-500万的访问量,推算出首页接口的TPS=(3000000+5000000)/20.8/(180.2*3600)=246.9/s
数据设计:
1、接口请求字段参数化时尽量大量的不同数据、避免数据库查询缓存
2、关联场景的压测数据尽量复用,避免重新生成,比方下单和退款
3、mock三方接口需要有一定延时,接近真实场景
4、对于链路式压测,接口间数据传递可以通过json或正则表达式从响应参数提取
5、如果开发有要求看下缓存性能,可以忽略第一点
二、性能测试指标
1、指标概念
并发数:指系统同时能处理的请求数量,这个也是反应了系统的负载能力
吞吐量:指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标
响应时间:指执行一个请求从开始到最后收到响应数据所花费的总体时间,即从客户端发起请求到收到服务器响应结果的时间,直接反应了系统的快慢
TPS(Transactions Per Second):也就是事物数/秒。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数
计算公式:
1、TPS=并发量/平均响应时间
2、平均响应时间=所有响应时间总和/完成的事务数
性能指标:
业务指标:每秒事务处理数(TPS)、响应时间(RT)、稳定性(TPS波动率)、成功率应用指标: CPU使用率、内存使用率、线程池连接数、异常日志、OOM
DB指标:CPU使用率、内存使用率、库表扫描行数、数据库连接数、慢SQL
其他指标:消息堆积、延迟
三、性能测试调优
1、接口涉及的sql是否加了索引
2、接口是否使用缓存