由于性能指标计算公式较多,测试人员对公式理解不够深入,存在用错公式的情况,本文主要介绍性能指标、性能指标计算公式,并提供通用的性能指标计算指引,引导项目人员进行性能指标的计算。
性能测试指标通常分为业务指标、资源指标。业务指标:从业务人员的角度得出来的,例如:并发用户数、TPS、成功率、响应时间。资源指标:从运维人员的角度得出来的,例如:CPU资源利用率、内存利用率、I/O、内核参数(信号量、打开文件数)等。
不同用户对系统的指标类型和期望值是不一样的,需要提前针对不同角色的人员进行指标调研,设定阈值,测试出系统在阈值下的性能,瓶颈定位及调优。未提前关注测试指标,将会导致测试结果不是相关人员需要的,结果是有偏差的。
1.1业务指标
业务响应时间(Response Time):这个指标所有相关人员都明白其含义,业务部门更需要此指标的具体值,一般情况下,不同系统的业务响应时间期望值是不同的,1秒以内最佳。
业务处理能力(Transaction Per Second):这个指标是衡量系统的处理能力的一个非常重要的指标,TPS可以参照同行业系统和结合具体业务,中小企业TPS值为50~1000笔/秒,银行TPS值为1000~10000 笔/秒。
成功率:这个指标是衡量系统处于压力下,业务的成功率,一般业界成功率要大于99.6%。
1.2 资源指标
一般情况下,系统资源指标也不能超过瓶颈值,例如CPU资源利用率<=75%,内存无SWAP, 磁盘和网络I/O不超过自身处理能力。理想的情况下,当系统压力上不去的时候,资源成为瓶颈(正常情况下,非其他瓶颈情况下导致),这样的话加资源,系统处理能力还会上升的,但是遗憾的是,很多系统性能测试资源都没达到瓶颈的时候,压力就上不去了。
1.3并发用户数和tps关系
在做性能测试的时候,很多人都用并发用户数来衡量系统的性能,觉得系统能支撑的并发用户数越多,系统的性能就越好;对TPS不是非常理解,也根本不知道它们之间的关系,因此非常有必要进行解释。
针对服务器端的性能,以TPS为主来衡量系统的性能,并发用户数为辅来衡量系统的性能,如果必须要用并发用户数来衡量的话,需要一个前提,那就是交易在多长时间内完成,因为在系统负载不高的情况下,将思考时间(思考时间的值等于交易响应时间)加到脚本中,并发用户数基本可以增加一倍,因此用并发用户数来衡量系统的性能没太大的意义。
参考下图:并发用户数是10,运行了10分钟,平均响应时间是1129ms,共发送了5237个请求。
TPS计算:总数据量除以使用的时间,得出单位时间内处理数量,即5273/(10*60)=8.78
TPS还有另外一种计算方法: TPS =并发用户数/平均响应时间
TPS =10/1.129=8.85
性能测试指标计算的公式有很多,每个公式的应用条件也不一样。这里特别说明一下使用公式2 需要用户使用系统的数据分布符合泊松分布才行,抢购等指定时间举行的活动不符合泊松分布,因此不能使用该公式进行计算。
通常情况下系统并没有明确的性能测试指标,这时若业务属于已运营业务,已有历史数据,利用历史数据分析,得出指标;若业务属于新业务,没有历史数据,只有凭借经验以及系统类型进行分析预估,得出指标了。拿到什么样的数据就用什么公式,具体计算方法如下:
案例一:某网站一天访问量是300W,怎么性能指标计算?
答: 300W是PV,另外还需要和产品沟通系统每天正常访问时长,比如T小时。根据80~20原则:80%的业务量在20%时间完成。
通过28原则,计算系统整体能力TPS:300W*0.8/(T*60*60*0.2)
计算到这里还没有完,我们还需要确定各个业务模块占比,例如:首页、登录、页面查看、功能提交等不同模块的访问占比。最后根据业务的不同占比组合成混合场景进行测试。
案例二:一个OA系统,该系统有3000个用户,(可以看登录信息)平均每天大约有400个用户要访问该系统,(日志文件查看)对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。
答:该系统用户使用习惯符合泊松分布理论,故直接使用该公式进行计算。
C=N*L/T =400*4/8
n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)
案例三:
项目总用户量30(学生25万、老师5万),预计在2020年1月15日 上午8到12点有25万学生都登录该系统查考试成绩,平均每个用户访问时长是:14分钟42秒。
用户使用步骤:打开首页->登录->点击查看报告->切换科目(共计切换4科)->全部预览原卷(4个原卷)->查看试题分析(共计4科)->回执单,每个步骤一个transaction,共计16个transaction。
求:计算系统需要支持最大并发用户数和TPS是多少?
答:
TPS计算:
方法一:25W用户需要在4个小时内登录访问系统,我们先计算系统登录需要的性能,登录需要的TPS = 业务量×80% / 时间×20% = 250000×0.8/14400×0.2 = 69.4
然后用户业务模型分析,整个查分过程有16个事务,整体的tps为
总TPS= 69.4*16=1110.4 即系统每秒需要处理1110.4个事务。
方式二:通过PV/UV预估系统系统TPS
1) 通过PV/UV计算出未来25W用户总体的PV数量
PV=7040664/393053*250000
2)通过28原则计算系统TPS
TPS=PV*80%/(4*3600*20%)=1243
并发用户数:
方式一:
使用泊松分布公式计算,平均并发用户数:C=nL / T。
N为访问系统的UV数量250000
L=14.42分钟=882(s)
T=4小时=14400(s)
则C=n·L/T=250000×882/(4×3600)≈15313人
方式二:
根据TPS=并发用户数/响应时间
得出并发用户数=TPS*3=1250*3=3750
疑问:并发用户数一个计算的是15000,一个3750,为什么会有这么大的差距?因为此次指标计算强制要求用户在某天的4个小时内访问完成,已经不符合泊松分布式理论。
行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!