在进行性能测试之前,测试目标的明确是非常重要的。在一般软件的测试流程中,测试人员需要首先收集软件需求,阅读并理解业务需求,并且将业务需求转换为测试目标。对于性能测试来说,非常重要的一个需求文档就是 NFR(Non-Functional Requirements)。NFR 描述了除功能性需求以外的其他需求,包括性能需求,系统安全性、可用性以及可扩展性的需求。在 NFR 中,对于性能需求定义了关键的性能指标 KPI(Key Performance Indicator, 关键性能指标),能够帮助性能测试人员更好地去理解性能需求。在软件开发周期中不同的阶段,性能测试的目标也不完全相同。尤其对于基于 SOA 的应用程序,在开发早期并没有性能基准时,测试的目标与已有基准时有着很大的不同,因此测试目标根据是否已有性能基准而不同:
有基准:性能测试的目标更多地是通过测试以获得合理的基准测试结果,用来作为与以后应用改变后性能测试结果比较的基准。
无基准:此时的性能测试目标是通过测试保证应用能够在一定测试环境下满足已定义的性能能力。
在 NFR 文档中定义了一些关键性能指标,这些性能指标能够帮助测试人员检测应用程序是否能够满足性能需求。下面将介绍几个比较重要且常见的在 NFR 中定义的关键性能指标:
响应时间(Response time)
响应时间定义为从发送事务请求到收到该事务请求回应的时间间隔。响应时间的需求定义并不是一个固定的数值,这是因为对于一个 SOA 应用程序,事务的复杂程度以及使用频率是完全不同的,如果要求所有事务的响应时间都达到同一指标,这是非常不合理的。因此需要对不同复杂程度和不同使用频率的事务定义相应的响应时间需求。下面为响应时间需求的实例:
表 1. 响应时间需求
吞吐量(Throughput)
吞吐量被定义为在单位时间内应用服务器能够处理的事务数量。对应用程序的吞吐量的测试能够检测应用程序在单位时间内处理事务的能力,当然前提条件是在一定的测试硬件环境下,因为众所周知硬件环境对性能测试的结果影响是很大的。在一个 SOA 应用程序中可能包括了实时处理的事物和批量处理的事务,而对于这两种不同处理方式的事务,吞吐量的需求也不同,因而往往对不同的事务分别定义吞吐量指标。吞吐量单位则为 TPS (transactions per second),或 TPM (transactions per minute)。
静态容量(Static Volumetric)
Static Volumetric 定义了应用程序中包括并发用户数,区域数,账户数等重要数据量。其中比较重要的并发用户数则决定了性能测试中使用的负载量,这对性能测试来说非常重要,只有负载量达到了并发用户数才使性能测试的结果更具有真实性。同时 Static Volumetric 定义的数据量能帮助测试人员明确地知道在测试前需要准备的铺底数据量,这样使性能测试是在更具真实性的测试环境下进行。
文章来源于领测软件测试网 https://www.ltesting.net/