前几天写了点性能测试方法概述,到最后发现好像还是不能省掉应用领域这一环,那就写全吧。
简单来说,就是性能测试可以应用在哪些方面,或者换个说法,你做性能测试的目的是什么,概括一下可以分为5个不同的领域:
1、能力验证
可以理解为验证系统具有其宣称的能力,常用的描述是这样的:【在A条件下具有B能力】等。其特点为要求在已确定的环境下运行以及需要根据典型业务场景设计测试方案和测试用例。
2、规划能力
主要关心【应该如何使系统具有我们要求的性能】或【在某种可能发生的条件下,系统具有何等的性能】,常见描述为:【某系统能否支持未来一段时间内的用户增长】,亦或是【应该如何调整系统配置,使系统能够满足增长的用户需要】。其特点为:
1)是一种探索性测试:侧重规划,不依赖预先设定的用于比较的测试目标,旨在了解系统能力;
2)可用于了解系统的性能以及获得扩展性能的方法:通过更换设备、调整参数等方法获取系统性能可扩展的因素。
3、性能调优
性能调优应用的地方很多,不同测试阶段,不同场合等都可以进行。对于已经在正式应用的系统来说,进行性能调优可能会首先关注部署环境的调整,例对服务器的调整以及参数调整、对数据库参数的调整等,此时环境基本是确定的(PE)。对于正在开发中的应用,进行调优有个可用于比较的测试基准环境即可。一个标准的性能调优过程可以分为以下几步:
1)确定基准环境、基准负载和基准性能指标
简单来说,就是一种可以被用来衡量和比较性能调优测试结果的标准应用运行环境、测试操作脚本和可用来衡量调优效果的性能指标(每次执行性能测试的环境要严格保持一致)。更直白点说,就是你调优之后得到的测试结果要和上一次比较才能知道你这次调优效果如何。
注意:数据库要具有相同的数据环境(在数据量为10和数据量为1W的表中查询数据明显是不一样的),某些应用在测试之前可能需要“预热”(某些服务器会根据连接数的多少自动调整配置,比如10人连接开一档,50人开二挡....大概这么个意思,具体可百度)。
2)调整系统运行环境和实现方法,执行测试
①硬件环境的调整:改变系统运行的服务器,主机设备环境,调整网络环境;
②系统设置的调整:系统的核心参数,数据库的内存池大小,应用服务器使用的内存大小,采用更高版本的JVM环境等;
③应用级别的调整:架构、数据访问方式,修改业务逻辑的实现方式等。
PS:一次性不要调整过多,否则会很难判断是哪个调整对系统性能产生了较大的影响,一次调整3~5处就够了。
3)记录测试结果,进行分析
调优之后执行测试,进行比较,分析。和第二步构成循环,循环的出口是“系统达到了预期的性能调优目标”。
4、缺陷发现
见名知意,主要目的就是通过性能测试的手段来发现系统中存在的缺陷,一般采用并发测试的方法。
5、性能基准比较
通常应用在敏捷开发过程中,通过比较得到每次迭代中的性能表现的变化。在实际操作中,可以将性能测试形成固定的脚本,并在固定的环境上对模块执行相应的测试,测试结果通过工具直接写入数据库并通过图形展现工具将其展现成折线图,其中可以直观的反应模块每个迭代中性能表现的变化,甚至可以作为验收条件的一部分。还可以应用在单元测试中位给定的函数设置性能基准比较。
____人间路窄酒杯宽