第1部分 基础篇
第1章 基本概念
1.1 性能测试的基本概念
随着互联网的蓬勃发展,软件的性能测试已经越来越受到软件开发商和用户的重视。例如一个网站初始定营,随着用户的逐步增长,软件的使用者可能会成几倍、几十倍甚至几百倍数量级的增长,如果不经过性能测试,通常软件系统都会崩溃掉,所以性能测试是非常重要的。那么什么是性能测试,它包括哪些测试内容?通常在什么情况下,需要引入性能测试呢?
1.1.1 性能测试的概念及其分类
软件系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、系统稳定性、**性、兼容性、可靠性、可扩展性等。性能测试是为描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。通常大家把负载测试、压力测试等统称为性能测试。
负载测试:通过逐步增加系统负载,测试系统性能的变化,并*终确定在满足系统的性能指标情况下,系统所能够承受的*大负载量。简而言之,负载测试是通过逐步加压的方式来确定系统的处理能力,确定系统能够承受的各项阀值。例如,逐步加压,从而得到“响应时问不超过10秒”,“服务器平均CPU利用率低于85%”等指标的阈值。
压力测试:通过逐步增加系统负载,测试系统性能的变化,并*终确定在什么负载条件下系统性能处于失效状态,并获得系统能提供的*大服务级别。压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效的测试。
其他的性能测试分类为。
配置测试:主要是通过对被测试软件的软硬件配置的测试,找到系统各项资源的*优分配原则。
并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。
容量测试:测试系统能够处理的*大会话能力,确定系统可处理同时在线的*大用户数,通常和数据库有关。
可靠性测试:通过给系统加载一定的业务压力(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定。因为运行时间较长,通常可以测试出系统是否有内存泄漏等问题。
失败测试:对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障,用户是否能够继续使用系统,用户受到多大的影响。如几台机器做均衡负载,测试一台或几台机器垮掉后,系统能够承受的压力。
……