8-26接口压力测试-2性能测试入门

1. 性能测试基本概念

1.1 如何衡量一个接口的性能

  • 在<font color#FF0000>4核8G的服务器上压测,<font color#FF0000>20并发下,我们测试得到的<font color#FF0000>TPS为200,MRT为150ms,RT90值为250ms,CPU使用率为65%
  • 服务器的配置:CPU、显卡好,能承受的IO一定是高的;网卡大,能承受的流量很大。性能与硬件是有关系的,要把硬件描述出来。
  • 衡量性能的指标
    
    • 并发数
    • TPS
    • MRT、RT90值、RT99值 (RT:Response time)
    • 资源使用率(CPU、内存、网络、磁盘)

1.2 吞吐量

  • 每秒钟成功处理的事务数/请求数
  • 衡量指标
    * TPS:Transaction per second 对于接口来说,TPS是最主要的
    * IOPS:IO per second
    * BPS: Bytes per second
    * QPS:Query per second 数据库-每秒查询的事件

1.3 响应时间:

  • 从客户端发起一个请求开始,到客户端接收到从服务器端返回的最后一个字节结束,这个过程所耗费的时间
  • 响应时间=(N1+N2+N3+N4)+(A1+A2+A3)

    如果一个接口响应很慢,通常需要打点,将慢的部分找出来。
    响应时间的衡量指标:
  • MRT(Mean Response Time):平均响应时间
  • STD DEV:标准差,响应时间波动,波动越小越好
  • RT90:90%请求的响应时间小于该值,产品响应及时要求不同,如网络延迟要求99.99%在某值范围
  • MAX:最大值,长尾时间

1.4 资源使用率

  • 资源使用率指对不同系统资源的使用程度
    * 系统资源:CPU/内存/磁盘IO/网络IO
    * 应用资源:队列,锁,现层,GC,连接数等。
    * 当接口响应慢,也要考虑硬件的因素

1.5 四个常见的性能测试概念


a点:性能期望值
b点:高于期望,系统资源处于临界点
c点:高于期望,性能处于拐点,系统能承受的最大的TPS值
d点:系统资源出现瓶颈,性能下降

  • 性能测试:通常在a点和b点之间进行
  • 负载测试:b点到c点
  • 压力测试:b点到d点,压倒最高点c,再加大线程,TPS反而下降,得出的c点即为系统能承受的最大的TPS值
  • 稳定性测试:a-b,不要超过c(超过c是没有意义的)

2. 如何开展性能测试

2.1 性能测试目标和测试类型的选择

  • 上线的功能是否有性能问题?
    * 评估系统性能:性能测试、负载测试
    * 检查系统性能瓶颈点:负载测试、压力测试
  • 优化后的接口,是否有性能提升
    * 回归测试、负载、压力测试
  • 验证稳定性、可靠性等:稳定性测试、异常测试
  • 容量评估:线上压测

2.2 哪些接口需要进行性能测试

  • 核心功能
  • 高频调用接口(不一定是核心的,但调用量很大)
  • 业务逻辑复杂的接口、大量数据库读写操作

2.3 性能测试环境要求

  • 软硬件环境要求一致
    * 线上集群的最小集合
    * 硬件配置最好一致
    * 拒绝多个服务混部在同一台服务器上
    * 软件配置和线上保持一致

2.4 测试准备

  • 测试数据
    * 用户账号
    • 预估三个月或半年后活跃用户数
    • 避免随便几十个用户账号就开始测试
*    参数化数据,数据量、数据大小符合真实分布
*    设置[铺底数据](测试库数据量大小和线上保持一致,否则几十条数据测试正常,而放到线上几十万条就引发性能问题),从镜像库导线上数据到测试库
  • 测试脚本和工具:Jmeter、Grinder
  • 性能测试平台

2.5 测试执行

  • 做好监控:把一切监控起来
    * 性能指标:TPS、MRT、RT90值、失败率
    * 资源监控:
    • 监控点:CPU、内存、网络、磁盘
    • 监控机器:压测机器、nginx、应用服务、数据库、缓存、消息队列
*    日志监控:检查错误、异常,及时发现错误
*    Java监控:堆内存、线程状态、线程数量等

2.6 流程文档

  • 性能测试准入标准
    * 提测任务描述清楚
    * 功能(第一轮)测试通过
  • 提侧需求文档
    * 测试目的、测试内容、测试环境、通过标准、被测系统架构
  • 性能测试通过标准
    * 遗留bug:无major级别以上的bug
    * 是否符合预期:符合预期指标
原文地址:https://www.cnblogs.com/csj2018/p/11722867.html