1.什么是性能测试?
  性能测试,指用工具模拟用户行为,对系统进行大批量并发操作,得出系统各类性能指标和性能瓶颈。
2.性能测试的目的是什么?
  对服务端接口进行性能测试,主要为了验证系统是否可以达到预期的性能指标,与此同时,能找到系统性能的瓶颈,从而进行针对性优化
3.性能测试的维度?
  从大的分类来看,性能测试常见的被分为:服务端性能测试、客户端性能测试、全链路性能测试
4.业务性能指标有哪些维度?
(1)响应时间(RT):从用户发送一个请求,到用户接收到服务器返回的响应数据,这段时间就是响应时间。
  响应时间=网络时间+系统处理时间=(N1+N2+N3+N4)+(A1+A2+A3)   随着负载的增加,响应时间会在某一时刻突增。性能测试的分析,常常围绕着图中的拐点进行
(2)吞吐量(QPS,TPS):单位时间内,系统处理的请求数量。一般使用单位为“请求数/秒”
  随着负载的增加,吞吐量逐渐达到饱和并开始下降。性能测试的分析,常常围绕着图中的拐点进行
  QPS为最大吞吐能力,TPS为每单位时间传输的事务处理个数。举一个网上随处可见的例子:假如一个大胃王一秒能吃10个包子,一个女孩子0.1秒能吃1个包子,那么他们是不是一样的呢?答案是否定的,因为这个女孩子可能无法在一秒钟吃下10个包子,她可能要吃很久。这个时候这个大胃王就相当于TPS,而这个女孩子则是QPS
(3)并发数:
  系统用户数:系统注册的总用户数据
  在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
  并发用户数:某一时刻,同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能
5.系统资源性能指标有哪些维度?
(1)服务器:CPU利用率、处理器队列长度、内存利用率、内存交换页面数、磁盘IO状态、网卡带宽使用情况等
(2)数据库:数据库连接数、数据库读写响应时长、数据库读写吞吐量等
(3)网络:网络吞吐量、网络带宽、网络缓冲池大小
(4)缓存(Redis):静态资源缓存命中率、动态数据缓存命中率、缓存吞吐量等
(5)测试设备(压力发生器):CPU利用率、处理器队列长度、内存利用率、内存交换页面数、磁盘IO状态、网卡带宽使用情况等
6.性能测试的分类
  网上的分类方式众多,我个人理解,核心的三种性能测试有:
(1)负载测试:我们先有一个期望值,给系统加到这个期望的压力时,看能不能扛得住
(2)压力测试:我们不设定预期值,而是要寻找这个值。通过不断加压,找到性能崩溃的拐点
(3)疲劳测试:是在负载测试的基础上,进行长时间运行,看能不能扛得住
  由此可见,目的不同,测试的手段就不同