资深测试整理,性能测试-平均并发数+评估系统TPS/并发数(详情)

目录:导读


前言

1、平均并发数计算

平均并发数 = (最大活跃用户数 * 访问页面所需时间) / 页面被持续访问时间

最大活跃用户数: 不管采用什么公式计算,都只能使用最大活跃用户数进行计算,不能按用户总量计算;

访问页面所需时间: 单个用户在访问页面所需的单位时间,比如用户打开首页这个动作,从开始到加载完成所需要的时间;

访问页面持续时间: 活跃用户在高峰时间段访问页面的持续时间,如:早上9点半~10点是高峰访问时间段,则持续时间是30分钟;

举个例子:某站有1W活跃用户,在9点整进行的促销活动,预计持续抢购1分钟,已测得活动页面需要6秒完全加载,则我们可以进行计算:

shell 复制代码
平均并发 = ( 100000 * 6 )/ 1 * 60 = 1000

从上面的公式,我们也不难得出结论:

页面加载时间越长,并发越大。前面用户的访问未结束,后面的用户又对系统发起了访问的情况;

促销活动开展的时间越长,并发越小。用户的访问变得稀疏,系统的也压力变小;

2、峰值并发数计算

峰值并发数 = 平均并发数 + 3 * √平均并发数

平均并发数:按上面提到的方式计算

3 * √平均并发数:影响因子

按照上面提到的例子,我们的进一步计算:

shell 复制代码
峰值并发 = 1000 + 3 * √1000 = 1095

3、简单粗略估算

并发数估计 = 最大活跃用户数 * 10%

在对并发数精确度要求不高的情况,可以按 最大活跃数 * 8%~12% 进行简单估算。

4、评估一个系统的TPS和并发数

=》1.对于新系统

由业务部门或开发人员预估交易量和TPS指标,可以参考公式:并发用户=在线用户数* 10%。

当一个系统还没有上线时,我们可以预判的是这个系统准备要给多少人使用,如日常在线用户数量要支撑1000,那么并发用户参考值为:1000* 10%=100。

如果规定该业务的平均响应时间不高于500毫秒,那么通过TPS=并发用户数/业务平均时间,就可以得到TPS=100/0.5s=200笔/秒,为了系统健壮性考虑,我们还可以在预估计算得到的TPS基础上扩个1.5倍得到200笔/秒* 1.5=300笔/秒。

即可得到该系统的TPS为300笔/秒,并发数为150。

=》2.对于已上线系统

TPS有两个公式:

公式一:TPS=总请求/总时间,实际会考虑二八原则

公式二:TPS=并发数/业务平均时间

TPS一般有以下几种衡量系统性能指标的方式:

1)一般业务系统,选取一天业务量,根据二八原则估算TPS指标,二八原则即:80%的业务在20%的时间里完成,TPS=(业务量 * 80%)/(时间(单位s) * 20%)

2)秒杀类系统模型,选取高峰时间段业务量,估算TPS指标。

3)波动类、交易集中类系统模型,选取特殊交易时间段业务量,预估TPS指标。

另外需要注意:TPS指标需要考虑业务增长量相关因素

如某银行系统某业务订单数据如下:

日常8小时,100万笔交易量,高峰期间交易量8万笔,高峰持续时间9分钟,预估系统3年内每年业务增长率为20%

那么:

1)该业务系统日常期间TPS为:TPS=(日常交易量 * 80%)/(时间 * 20%)=(100万 * 80%)/(8小时* 60 * 60 * 20%)≈139笔/秒

2)该业务系统高峰期间TPS为:TPS=高峰期间交易量/高峰持续时间(单位s)=8万/9分钟* 60≈148笔/秒

3)该业务系统包含每年业务增长率TPS为:

首先三年后业务量=日常交易量* (1+20%)* (1+20%)* (1+20%)=100万* 1.2* 1.2* 1.2=172.8万

其次被测业务交易占总业务交易比例为:40%,那么被测试业务交易量为:总业务交易量* 40%=172.8万* 40%=69.12万

最后被测业务包含每年业务增长率TPS为:(被测试业务交易量* 80%)/(时间(单位s) * 20%)=(69.12万* 80%)/8小时* 60 * 60 * 20%)=96笔/秒

一般情况下,为了系统健壮性考虑,我们会在预估计算得到的未来的TPS基础上扩个1.5倍,即:该业务系统包含每年业务增长率TPS为=96*1.5倍=144笔/秒。

4)该系统性能测试最低支持的并发数为:

如果规定该业务的平均响应时间不高于500毫秒,那么通过TPS=并发用户数/业务平均时间,就可以得到并发用户数=0.5秒*144笔/秒=72个,即系统最低要求支持的并发数为:72个

说明:这里平均响应时间不同的公司不同业务可接受的响应时间是不同的,一般对于在线实时交易:

互联网企业:500毫秒以下,例如淘宝业务10毫秒左右

金融企业:1秒以下为佳,部分复杂业务3秒以下

保险企业:3秒以下为佳

制造业:5秒以下就行。

即可得到该系统的TPS为144笔/秒,并发数为72个。

=》3.横向TPS扩展

假设单节点我们通过上面的方法,计算出来的TPS为150笔/秒,平均响应时间不高于500毫秒,并发用户数75个

现在我们想要系统支撑高并发数,通过扩展服务器数量来提升业务处理的能力,那么,我们也可以计算横向TPS扩展增长率:

python 复制代码
1. 单节点TPS:150笔/秒
2. 2节点TPS:265笔/秒,则增长率为:(2节点TPS-单节点TPS)/(2节点-1)/单节点TPS=(265-150)/(2-1)/150≈76.67%
3. 3节点TPS:375笔/秒,则增长率为:(3节点TPS-单节点TPS)/(3节点-1)/单节点TPS=(375-150)/(3-1)/150≈75%
4. 4节点TPS:488笔/秒,则增长率为:(4节点TPS-单节点TPS)/(4节点-1)/单节点TPS=(488-150)/(4-1)/150≈75.11%
5. 5节点TPS:600笔/秒,则增长率为:(5节点TPS-单节点TPS)/(5节点-1)/单节点TPS=(600-150)/(5-1)/150≈75%
6. 6节点TPS:715笔/秒,则增长率为:(6节点TPS-单节点TPS)/(6节点-1)/单节点TPS=(715-150)/(6-1)/150≈75.33%
7. 7节点TPS:825笔/秒,则增长率为:(7节点TPS-单节点TPS)/(7节点-1)/单节点TPS=(825-150)/(7-1)/150≈75%
8. 8节点TPS:940笔/秒,则增长率为:(8节点TPS-单节点TPS)/(8节点-1)/单节点TPS=(940-150)/(8-1)/150≈75.24%
9. 9节点TPS:1050笔/秒,则增长率为:(9节点TPS-单节点TPS)/(9节点-1)/单节点TPS=(1050-150)/(9-1)/150≈75%
10. 10节点TPS:1165笔/秒,则增长率为:(10节点TPS-单节点TPS)/(10节点-1)/单节点TPS=(1165-150)/(10-1)/150≈75.19%

一般情况下,我们要求扩展服务器的数量进行高并发的处理,TPS增长率应在75%以上。

完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程

|-------------------------------------|
| 下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

人生最耀眼的不是站在领奖台的瞬间,而是黑暗中依然前行的勇气。当你觉得疲惫不堪时,请记住:每个伟大的转折都藏在"再坚持一下"的决定里。你的脚步,正在丈量属于自己的传奇!

别被眼前的迷雾困住脚步!那些看似徒劳的努力,都在为惊喜的绽放积蓄力量。当世界说"到此为止"时,你的坚持就是最响亮的回答。向前奔跑吧,生命的精彩正在下一站等你!

相关推荐
M.Blog13 小时前
JMETER+ANT接口自动化测试环境搭建实战讲解
jmeter
卓码软件测评13 小时前
第三方软件课题结题验收测试机构【使用JMeter的Web应用负载测试】
功能测试·jmeter·负载均衡·压力测试
程序员小远16 小时前
使用Jmeter进行http接口测试
自动化测试·软件测试·python·测试工具·jmeter·http·接口测试
程序员杰哥2 天前
如何使用Postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·python·测试工具·jenkins·postman·1024程序员节
qq_297075672 天前
GPU芯片内存泄漏测试方法
压力测试
进击的雷神2 天前
Jmeter定时器详解:作用范围与使用场景
jmeter
测试改改2 天前
Jmeter-响应数据中文显示乱码
jmeter
测试界清流2 天前
用Jmeter进行接口测试
jmeter·接口测试