性能测试

一. 定义

性能测试是经过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试压力测试都属于性能测试,二者能够结合进行。经过负载测试,肯定在各类工做负载下系统的性能,目标是测试当负载逐渐增长时,系统各项性能指标的变化状况。压力测试是经过肯定一个系统的瓶颈或者不能接受的性能点,来得到系统能提供的最大服务级别的测试。html

执行时间点:通常而言,只有在系统基础功能测试验证完成、系统趋于稳定的状况下,才会进行性能测试,不然性能测试是无心义的。linux

二. 类型

  • 基准测试:比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。

  • 负载测试:是肯定在各类工做负载下系统的性能,目标是测试当负载逐渐增长时,系统组成部分的相应输出项,例如经过量、响应时间、CPU负载、内存使用等来决定系统的性能。(模拟真实环境的使用)
  • 压力测试:是经过肯定一个系统的瓶颈或者不能接收的性能点,来得到系统能提供的最大服务级别的测试。压力测试是评估系统处于或超过预期负载时系统的运行状况,关注点在于系统在峰值负载或超出最大载荷状况下的处理能力。
  • 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其余性能问题。并发性能测试的过程是一个负载测试压力测试的过程,即逐渐增长负载,直到系统的瓶颈或者不能接收的性能点,经过综合分析交易执行指标和资源监控指标来肯定系统并发性能的过程。目的主要体如今三个方面:以真实的业务为依据,选择有表明性的、关键的业务操做设计测试案例,以评价系统的当前性能;

  • 稳定性测试:在给系统加载必定业务压力的状况下,使系统运行一段时间,以此检测系统是否稳定。

三. 指标

1.响应时间服务器

从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间。其中包括网络时间和程序处理时间。
网络

响应时间=网络时间+请求处理时间并发

2.每秒事务处理数(TPS,TransactionPerSecond)工具

每秒钟系统可以处理的交易或事务的数量。它是衡量系统处理能力的重要指标。
性能

3.并发量测试

某一时刻同时向系统发送请求的用户数.net

4.资源利用率线程

指的是对不一样系统资源的使用程度,主要关注的是服务器资源的使用状况,以下:

(1)CPU使用率

CPU当前使用程度,是否处于饱和,是否达到瓶颈

(2)内存

内存使用状况

(3)磁盘IO

对磁盘的读写状况,当对磁盘读写过于频繁,会致使大量请求处于IO等待的状态。

(4)服务器负载

负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态。

在UNIX系统中,系统负载是对当前CPU工做量的度量,被定义为特定时间间隔内运行队列中的平均线程数。load average 表示机器一段时间内的平均load。这个值越低越好。负载太高会致使机器没法处理其余请求及操做,甚至致使死机。

Linux的负载高,主要是因为CPU使用、内存使用、IO消耗三部分构成。任意一项使用过多,都将致使服务器负载的急剧攀升。

具体的关于服务器负载分析和问题排查能够参考下面这篇博客

https://blog.csdn.net/wufaliang003/article/details/80400385

(5)网络带宽

当收发包的吞吐率即将到达网卡最大上限,网络数据报文有丢包和阻塞现象,考虑网络是否存在瓶颈。

四 指标之间的关系


这张图中展现的是1个标准的软件性能模型。在图中有三条曲线,

绿色:表示资源的利用状况(Utilization,包括硬件资源和软件资源)

紫色:吞吐量(Throughput,这里是指每秒事务数)

蓝色:响应时间(Response Time)

横坐标:并发用户数(Number of Concurrent Users),左到右表现了并发用户数的不断增加

在这张图中咱们能够看到,最开始,随着并发用户数的增加,资源占用率和吞吐量会相应的增加,可是响应时间的变化不大;不过当并发用户数增加到必定程度后,资源占用达到饱和,吞吐量增加明显放缓甚至中止增加,而响应时间却进一步延长。若是并发用户数继续增加,你会发现软硬件资源占用继续维持在饱和状态,可是吞吐量开始降低,响应时间明显的超出了用户可接受的范围,而且最终致使用户放弃了此次请求甚至离开。

根据这种性能表现,图中划分了三个区域,分别是Light Load(较轻的压力)、Heavy Load(较重的压力)和Buckle Zone(用户没法忍受并放弃请求)。在Light Load和Heavy Load 两个区域交界处的并发用户数,咱们称为“最佳并发用户数(The Optimum Number of Concurrent Users)”,而Heavy Load和Buckle Zone两个区域交界处的并发用户数则称为“最大并发用户数(The Maximum Number of Concurrent Users)”。当系统的负载等于最佳并发用户数时,系统的总体效率最高,没有资源被浪费,用户也不须要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统能够继续工做,可是用户的等待时间延长,满意度开始下降,而且若是负载一直持续,将最终会致使有些用户没法忍受而放弃;而当系统负载大于最大并发用户数时,将注定会致使某些用户没法忍受超长的响应时间而放弃。

本文参考

1.http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html

2.https://www.cnblogs.com/puresoul/p/5456855.html

3.https://blog.csdn.net/wufaliang003/article/details/80400385

相关文章
相关标签/搜索