在用卷尺测量某一物体的长度时,长度就是该场景下的度量指标,我们可以用分米、米或者更精确的厘米甚至毫米来描述这个长度,具体取决于使用场景。
与其他形式的测量一样,对性能进行测量也可以选择更精确的度量指标。本文描述的任何度量指标以及为获得这些度量指标的数据所进行的测量,都应该围绕上下文展开,只有在特定的上下文中这些度量数据才有意义。
在进行初次的性能测试时,就应该去了解哪些度量指标需要进一步完善,还需要添加其他哪些性能指标等。
例如,响应时间的度量指标可能包含在任何一组性能度量指标中。然而,为了使响应时间的度量指标有意义和具有可操作性,我们需要根据一天中的某个时间点或时间段、并发用户的数量、正在处理的数据量等信息来进一步定义响应时间的度量指标。
在一个具体的性能测试中,可基于以下方面的信息来进行度量指标的收集:
业务环境(包括业务过程、客户和用户行为、利益相关方期望等);
操作环境(包括测试所需技术以及这些技术的使用方式);
测试目标。
注意,不同领域的测试对度量指标的要求也不一样。
例如,对一个国际电子商务网站进行性能测试所选择的度量指标,与对一个控制医疗设备功能的嵌入式系统进行性能测试所选择的度量指标必然不同。
对性能测试的度量指标进行分类时,常需要考虑对性能进行评估时所处的技术环境、业务环境或操作环境。
下面介绍这3种环境下常见的性能测试度量指标。
一、技术环境
性能测试的度量指标依据技术环境的不同而有所不同。常见的技术环境包括:浏览器、移动端、物联网(IoT)、桌面客户端、服务器端、大型机、数据库、网络。除了这些内容外,性能测试还要考虑应用软件运行的环境特性(如嵌入式系统)。
技术环境相应的度量指标如下:
响应时间,如每个事务的响应时间、每个并发用户的响应时间、页面加载时间;
资源利用情况,如CPU、内存、网络带宽的使用情况,以及网络延迟程度、可用磁盘空间、10速率空闲和繁忙线程比例;
关键事务吞吐率,即用百分比来表示在一个特定时间周期内可以处理的事务数量;
批处理时间,如等待时间、产出时间、数据库响应时间、完成时间;
影响性能的错误数量;
完成时间,如创建数据所用时间、读取数据所用时间、更新数据和删除数据所用时间;
后台加载共享资源的能力,在虚拟化环境中需要特别关注它;
软件本身的度量指标,如代码复杂度。
二、业务环境
如果从业务或功能的视角出发,则性能度量指标可以包括如下几类:
业务处理效率,如一个完整业务过程的执行速度,包括正常、备用以及异常的用例流程或业务场景;口数据、交易以及其他工作执行单元的吞吐量,如每小时订单处理量、每分钟数据行增加量;口服务水平协议(SLA)的符合或违反率,如单位时间的协议违反数量;
与使用范围相关的指标,如在指定时间内执行任务的全球或本国用户百分比;
与使用的并发情况相关的指标,如并发执行一个任务的用户数;
与使用时段相关的度量指标,如在峰值负载期间能处理的订单数。
三、操作环境
性能测试在操作方面的性能度量指标更侧重于那些针对非一般用户的任务,针对这些任务的性能指标如下
操作过程所花费的时间,如系统环境的启动、数据或软件的备份、关机和恢复(如灾难后的恢复)等所需的时间;
恢复系统所需的时间,如从一个备份中恢复数据所需的时间;
警报和警告的反应时间,如系统出现错误后发出警报和警告所需的时间。