一、概念

性能测试指的是在一定的负载情况下,系统的响应时间等待性是否满足特定的性能需求。

衡量一个软件的性能,需从下面3点考虑:

• 时间特性:适当的响应和处理时间以及吞吐率的能力

• 资源利用性:使用合适数量和类别的资源的能力

• 效率依从性:软件产品遵循与效率相关的标准或约定的能力

二、性能测试分类

1、压力测试

在一定的软件、硬件及网络环境下,通过模拟大量虚拟用户向服务器产生负载,是服务器处于极限状态下长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。

压力测试强调系统的稳定性。

2、负载测试

在一定的软件、硬件及网络环境下,通过运行一种或多种业务在不同虚拟用户数量情况下,测试服务器的性能指标是否在用户的要求范围内,用于确定系统所能承载的最大用户数,最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率。

负载测试强调系统能否达到对应指标。

3、容量测试

在一定的软件、硬件及网络环境下,向数据库中构造不同数量级别的数据记录,运行一定虚拟用户数量情况下,获取不同数据级别的服务器性能指标,以确定数据库的最佳容量。

容量测试不光可对数据库,还可对硬件处理能力,服务器连接能力等进行性能测试,看在不同容量级别是否达到指定的性能。

4、强度测试

主要是为了检查程序对异常情况的抵抗能力,总是迫使系统在异常的资源配置下运行。

疲劳强度测试时一类特殊的强度测试,主要测试系统长时间运行后的性能表现,如7X24小时的压力测试。

5、配置测试

在一定的软件、硬件及网络环境下,运行一定虚拟用户数量情况下,获取不同配置的性能指标,用于选择最佳的设备及参数配置。通过配置测试可将性能缺陷放大,方便定位性能瓶颈。

6、基准测试

将测试结果作为基线数据,在系统调优或系统评测过程中,运行相同业务场景并比较测试结果,确定调优是否达到效果或为系统的选择提供决策数据。基准测试一般基于配置测试,通过配置测试得到数据。

7、并发测试

模拟多个用户并发放访问同一应用、同一个存储过程或数据记录以及其他并发操作,测试是否存在死锁、数据错误等故障,一般需专门针对每个模块进行并发测试。

三、性能指标

1、响应时间

反映在完成某个业务所需的时间。Response time。对于用户来说,发送请求到收到响应的时间;对于服务器来说,收到请求到处理完返回给客户端时的时间。

Think time:用户在执行连续操作之间等待的时间,设置think time,是为了更真实的模拟用户。若要测试极端情况,需去掉think time。

2、吞吐量

反映单位时间内能够处理的事务数目,衡量服务器的处理能力。一个系统的吞吐量与request对CPU的消耗、外部接口、IO等等紧密关联。在LR中,吞吐量也被称之为TPS(transaction per second)每秒事务数。

3、服务资源占用

并不是简单指运行系统的硬件,而是支持运行程序的一切。在LR中,通过了很多计数器监控系统中软硬件的资源占用情况,如CPU使用量,内存,查询cache命中率等。

————————————————