近年来,随着各行各业客活量的不断发展,软件运行故障多表现为性能问题。因此,软件性能越来越受到测试人员关注,而性能测试是发现和识别系统瓶颈的重要环节。
但在实际性能测试过程中,测试人员经常遇到交易并发分散、无法确定交易数量的问题。本文主要针对上述问题,介绍测试策略制定方法,以满足不同交易类型的指标测算。
确定性能测试指标
在性能测试执行前需要对性能需求进行分析,明确测试指标。通常从以下几个维度进行分析:
各性能指标如下,在性能测试过程中,如发现测试结果有下述任一指标不满足目标时,需分析查找原因,确定问题并分析调优。
系统处理能力满足交易量预估。对可以确定交易量的交易,此项为衡量性能的主要指标。
交易响应时间。目标系统平均完成用户请求的总时长,此指标通常根据系统交易复杂度以及具体的业务需求确定。
系统资源消耗合理。比如系统CPU资源利用率小于80%,系统MEM资源利用率小于等于80%等,受测试环境硬件所限,可根据实际情况综合衡量。
交易差错率<0.5%。
TPS呈线性增长稳定,无较大起伏。
制定性能测试策略
针对系统性能测试指标,可根据交易量和交易用户是否确定来制定相应的性能测试策略,主要介绍以下两种方法。
1、交易量及交易用户数确定
前提:指所测交易有以往的交易数据,可从系统日志统计中查到相关交易的业务量数据,确定所测交易的日均、日峰交易量以及交易用户数。
方法1:按并发用户数量设计测试策略
以银行智能自助设备业务处理系统为例:一笔客户业务交易共产生10个待审核任务需提交后台业务处理审核中心,这10个任务需要2个不同级别的柜员进行审核,其中二级柜员需要处理6笔,三级柜员需要处理4笔,以某省客户交易日均5万笔为业务量基准,二级柜员日均需完成30万笔审核业务量,三级柜员需完成20万笔审核业务量。
测试策略制定过程如下:
确定TPS。审核日均交易时间为6小时,即21600秒,则二级柜员日均TPS为13.89笔/秒,同理三级柜员为9.26笔/秒。
确定并发数。根据业务量统计,二级柜员完成一笔审核任务平均耗时20秒,三级柜员单笔任务平均耗时10秒。
如果要完成日审核任务,则需配备二级柜员=300000/(21600/20)=278人,三级柜员需配备=200000/(21600/10)=93人。在发起性能交易时,可按照不同级别柜员添加不同交易,各交易设置不同的间隔时间(Pacing),保证不同级别柜员交易时间分别为20秒,10秒。由于性能测试资源与实际生产资源有差异性,测试时的并发用户数按278:93的比例发起即可。
此策略有一个弊端,由于交易间隔时间不一致,可能会使时间点上服务器承受的并发压力比和设置的并发比不相同,可能会造成间隔时间小的交易处理能力已达上限,但其他交易还能继续增加并发的情况,未能测试到系统的最大处理能力。如果改变用户并发比例,那对并发用户比例的计算也就没意义,此策略不能延续。
方法2:以系统处理能力设计测试策略
此策略偏向于服务器端的表现,根据TPS测试系统性能是否满足处理要求。
比如上述业务,一笔客户业务交易共产生10个待审核任务,二级柜员需要处理6笔,三级柜员需要处理4笔,从服务器端看同时处理完10笔任务才能完成一笔客户业务要求,所以并发可以控制在6:4比例压测服务端。假设所有交易响应时间都在1秒以下,则交易间隔时间可设置为1秒,控制交易发起服务器的并发性。
2、交易量和交易用户不确定
前提:对于新开发的交易,不能确定日均和日峰交易量,交易规律也不明确,交易用户数有一个预估值,但不确定。
方法1:按交易优先级设计测试策略
对于没有明确交易量和交易人数的场景,可按交易优先级大致分配交易并发比例。优先级高的设置并发相对较大,优先级低的交易并发相对较小。
将所有交易设置好间隔时间并且保证交易并发比例正确,在场景中可按此比例逐渐提高并发人数,监控服务器资源。
方法2:按系统处理能力设计测试策略
对于没有明确交易量,没有明确交易优先级的交易,可以仅测试当前环境下系统的最大处理能力,按比例梯度增加用户并发数量,查看并发用户增加的TPS递增情况。
以上是几种常用的性能测试策略制定方法,实际制定测试策略时,需根据交易类型、应用需求具体分析。
作者:李元库
来源:51Testing软件测试网原创