性能测试无论是在考试还是工作中,都是一个经常出现的话题,性能测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。性能测试不只是关注不同负载场景下的响应时间等指标,它也要通过测试来发现在不同负载场景下会出现的,例如速度变慢、内存泄漏等问题的原因。下面就性能测试的概念、分类等知识点进行总结学习。



概念:一般也叫做负载压力测试,是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。需要注意的是性能评测需要在真实的环境下,检查系统服务等级的满足情况,评估并报告整个系统的性能,还需要对系统的未来容量作出预测和规划。


具体来说,性能测试有以下常见的四种形式:

(1)负载测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。

(2)压力测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下系统的性能会变得不可接受。可见,压力测试是一种特定类型的负载测试。例如,访问一个页面的响应时间规定为不超过3秒,负载测试就是测试在响应时间为3秒时,系统所能承受的最大并发访问用户的数量,而压力测试就是测试系统在多大的并发访问用户数量下,响应时间不可接受,例如超过1分钟(定义为失效状态)。

(3)疲劳强度测试:通常是采用系统稳定运行情况下(例如7*24小时)能够支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。一般情况下利用疲劳强度测试来模拟系统日常业务操作。

(4)大数据量测试:也叫做容量测试,包括独立的数据量测试和综合数据量测试两类。独立的数据量测试指针对某些系统存储、传输、统计、查询等业务进行的大数据量测试。综合数据量测试指和压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试。


性能测试的目的总结如下:

(1)在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况。

(2)预见系统负载压力承受力,在应用实际部署之前,评估系统性能。

(3)分析系统瓶颈、优化系统。


性能测试常见的测试指标包括:

并发用户数

平均事务响应时间

每秒事务数

每秒点击次数

吞吐量

点击率

资源利用率(CPU、内存和磁盘等)


其中有关数据库资源占用的性能监控指标包括:

读写页面的使用情况

超出共享内存缓冲区的操作数

上一轮询期间作业等待缓冲区的时间

共享内存中物理日志和逻辑日志的缓冲区的使用率

磁盘的数据块使用情况以及被频繁读写的热点区域

用户事务或者表空间事务

数据库锁资源

关键业务的数据表的表空间增长

SQL执行情况