文章目录
1、性能测试的概念
什么是性能?性能是指事物的性质和能效。对于软件系统来说,与性能有关的描述和指标很多,比如说:响应时间、tps、qps、rps、pv、uv、throughputs等等。但是从本质上来说,可以归纳为两点,一是衡量一个系统的处理能力;另一个是衡量一个系统的处理效率。总结起来,性能测试也就是在一定的条件下,通过模拟系统的负载用户数来向系统发起请求,从而测试系统的各项性能指标是否达标。
2、性能测试常见的指标
(1)响应时间
客户端与服务器交互有关的时间。即从发送请求开始,到收到服务器的响应截至的时间。该指标是反映系统的处理效率的。
(2)吞吐量
单位时间内传递数据的数量。主要反映系统的处理能力。吞吐量的指标一般有两种,throughput与tps。
1)throughput:数据流量,可能是带宽、磁盘IO。单位是统一为字节。
2)tps:每秒事务数。即服务器每秒钟处理完毕的事务的数量。另外简单说一下qps,qps即每秒请求数,是tps的子集。
(3)资源利用率
常见的有CPU、内存、磁盘、带宽等。一般来说,资源利用率作为性能指标的意义是远远小于其作为分析、定位的参考数据的意义。
3、负载用户数
负载用户即我们在进行性能测试过程中,需要设置的虚拟用户的数量。负载用户数一般来说,可以从三个角度进行获取:
(1)系统最大用户数
用户可能是真实的人(使用者),也可能是其它,比如说设备、客户端、调用者
(2)在线用户数
在线是指大量、同时使用系统的用户数。一般来说,我们进行负载测试时,其实不用过多的关心负载用户数,只需要重点关心响应时间和TPS的情况即可。
(3)并发用户数
并发分为广义的并发和狭义的并发:狭义的并发是指同时向服务器发起请求的用户数量。一般来说,系统能够同时处理的用户数(并发数)是可以通过测试计算所得(并发数=TPS×响应时间)。广义的并发,是指在线用户,即在线即并发。
4、性能测试的方法
按照性能测试的目的,性能测试可以分为以下几类
(1)负载测试
被测系统通过阶梯式加压的方式,直到各项指标达到饱和。目的是为了测试系统的最大处理能力、最佳的性能表现和最大的有效负载用户数。
(2)压力测试
测试系统在一定饱和状态下,例如cpu、内存等在饱和使用状态下,系统能够处理会话的能力。目的是为了测试系统在极限的条件下的稳定性,追求的往往是错误率(0或者较低的错误率)。
(3)容量测试
目的是为了测试系统在指定容量下的性能表现,或者是为了评估系统在指定容量下的性能表现。
在系统中,和容量有关的有:数据库、带宽、网络连接数、缓冲池。一般来说,对于数据容量,着重考虑三点:
1)数据大小:数据库文件的大小。单位是bytes
2)数据级别:数据记录数量的多少,单位是条
3)数据特征:字段长度、类型、格式等
(4)基准测试
是为了获取系统的响应时间的基准值。做法:单用户运行足够的次数,取平均值。意义:通常来说,响应时间的最小值就是该值。
(5)配置测试
是为了获取系统的最低配置和推荐配置。
最低配置:系统能够运行的最低配置。
推荐配置:不是最优配置,而是各项指标基本能够达到用户需求,允许存在一定的偏差。
(6)并发测试
并发测试是通过模拟用户的并发访问,测试系统在并发情况下,是否存在资源争用、事务冲突、锁的升级等现象。