news 2026/4/22 21:36:43

爆肝整理,性能测试-TPS及计算方法+性能二八原则(详情)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
爆肝整理,性能测试-TPS及计算方法+性能二八原则(详情)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)

前言

1、TPS及计算方法

TPS表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。

例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。

例1:假定我们所开发的并发服务器,并发的访问速率是:1000客户/分钟,每个客户在该服务器上将花费平均0.5分钟,根据little’s law规则,在任何时刻,服务器将承担1000×0.5=500个客户量的业务处理。

假定过了一段时间,由于客户群的增大,并发的访问速率提升为2000客户/分钟。在这样的情况下,我们该如何改进我们系统的性能?

有两种方案:
第一:提高服务器并发处理的业务量,即提高到2000×0.5=1000。 或者
第二:减少服务器平均处理客户请求的时间,即减少到:2000×0.25=500。

例2:假设你排队参观某个风景点,该风景点固定的容纳人数是:60人。每个人在该风景点停留的平均时间是:3分钟。假设在你的前面还排有20个人,问:你估计你大概等多少时间才能进入该风景点。

答案:1小时(3×20=60),和该景点固定的容纳人数无关。

示例1:节拍0秒,思考时间0秒
用户执行5个事务并且每个事务的响应时间是10秒,需要花费50秒完成5个事务,即5/50=0.1 TPS (这里TPS是由响应时间控制)。

示例2:速率15秒,思考时间0秒
用户执行5个事务且每个事务的响应时间是10秒,但实际由于节拍大于响应时间,所以它优于响应时间控制了事务发生的频率。完成5个事务需要5*15 = 75秒,产生5/75=0.06667 TPS

在第二个示例中,平均响应时间小于节拍15秒,需要75秒完成5个迭代,产生了0.06667 TPS。

上面两个例子中我们假设思考时间为0秒。如果思考时间为2秒,总时间仍是75秒完成5个迭代,产生0.06667 TPS。

节拍为0秒,则用户数 = TPS * ( 响应时间 + 思考时间 )
节拍不为0秒且大于响应时间与思考时间的和,则用户数 = TPS * (速率)

事实上TPS是事务在w.r.t时间的速率,所以也被称为吞吐量(throughput)。

所以利特尔法则在负载模型中解释为:系统内平均用户数 = 平均响应时间 * 吞吐量
N = ( R + Z ) * X
N, 用户数
R, 平均响应时间(也可能是速率)
Z, 思考时间
X, 吞吐量(如TPS)

如:N (用户数)=1500, R (平均响应时间)=10, Z (思考时间)=0,则X (吞吐量)=1500/10=150 TPS

2、性能测试二八原则

所谓响应时间的“2-5-8原则”,简单说,就是
当用户能够在2秒以内得到响应时,会感觉系统的响应很快;
当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;
当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;

而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。

软件测试理论中,常提到2-8原则
所谓2-8原则,即80%的bug多发生在软件的20%的模块。所以,在回归测试的时候,这20%的高发地带是关注的重点!

二八原则还指:80%的业务量在20%的时间里完成。
如何理解,下面我们来个例子吧

用户登录场景:早高峰时段,8:50—9:10,5000坐席上线登陆。

业务量:5000个
时间:20x60=1200秒

吞吐量=80%x业务量/(20%*时间)=4000/240=16.7/秒

而并非5000/1200=4.1/秒

实际上,登录请求数分布是一个正态分布,最高峰时肯定比4.1/秒更高,高峰段实际上完成了80%的业务量,却只花了20%的时间。

温馨提示:

1)二八原则计算的结果并非在线并发用户数,是系统要达到的处理能力(吞吐量),初学者容易被误导,那这这个数据就去设置并发数,这是错误滴。

2)如果你的系统性能要求更高,也可以选择一九原则或更严格的算法,二八原则比较通用,一般系统性能比较接近这个算法而已,大家应该活用。

二八原则还指:
80%的错误是由20%的模块引起的
-----> 站在用户角度,并非研发实现的角度,正确地选择重要模块作为测试重点,从而不偏离方向。

80%的测试成本花在20%的软件模块中
-----> 设计用例时需要将时间花倾斜在复杂的20%核心模块上,从而设计更高效的测试用例。

80%的测试时间花在20%的软件模块中
------> 软件测试执行过程中需要将时间倾斜在重要模块的测试用例中,从而使测试更加有效,发现bug。

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

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

一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九、总结(尾部小惊喜)

人生最耀眼的不是站在聚光灯下的瞬间,而是黑暗中依然前行的勇气。当你觉得撑不住时,请记住:每个伟大的突破都藏在"再坚持一天"的决定里。你的脚步,正在创造属于自己的传奇!

别被暂时的风雨模糊了视线!那些让你流泪的磨练,正在雕刻更璀璨的未来。当别人选择放弃时,你的坚持就是胜利的宣言。向前奔跑吧,整个世界都在等待你的光芒绽放!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:50:47

20、Scrum 实践中的挑战与应对策略

Scrum 实践中的挑战与应对策略 1. 一致性的本能与开发习惯 一致性是一种根深蒂固的生存特性,人们往往抗拒改变,这是一种原始本能。就像一个猴子实验所展示的那样:在一个中间有香蕉树的房间里放了五只猴子,每当有猴子试图爬树摘香蕉时,洒水系统就会向所有猴子喷水,直到猴…

作者头像 李华
网站建设 2026/4/22 8:00:40

嵌入式工程师必备:Keil5下载与MDK环境搭建完整示例

从零开始搭建Keil5开发环境:嵌入式工程师的实战指南 你有没有遇到过这样的场景?刚接手一个STM32项目,兴冲冲地打开电脑准备写代码,结果一搜“keil5下载”跳出来十几个网站,有的要注册、有的带病毒提示、还有的根本打不…

作者头像 李华
网站建设 2026/4/21 2:16:25

开源神器GPT-SoVITS:零基础实现高质量语音合成

开源神器GPT-SoVITS:零基础实现高质量语音合成 在短视频、有声书和虚拟主播席卷内容生态的今天,一个现实问题摆在许多创作者面前:如何低成本、高效率地生成自然流畅、带有个人特色的AI语音?过去,这需要专业的录音设备、…

作者头像 李华
网站建设 2026/4/22 14:14:50

群智协作:大语言模型驱动下的多智能体协同

作者:黄兆康 周锐楷 张 海 郝天永在数字化浪潮席卷全球的今天,人工智能领域正不断突破边界。当单个智能体的能力逐渐触达瓶颈,多智能体协同恰似一把 “智能密钥”,解开了更复杂任务的解决密码。尤其是大语言模型加持下的…

作者头像 李华
网站建设 2026/4/17 21:01:44

NVIDIA显卡性能优化终极指南:深度解锁隐藏设置

NVIDIA显卡性能优化终极指南:深度解锁隐藏设置 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏画面卡顿、撕裂而烦恼吗?🤔 NVIDIA Profile Inspector就是你…

作者头像 李华
网站建设 2026/4/17 17:09:26

40、基础测度理论与严格分离证明详解

基础测度理论与严格分离证明详解 1. 基础测度理论 1.1 零测度集的引入 在研究实数集的子集时,我们常常需要对集合的大小或测度有一个精确的概念。假设我们有两个实数集的子集 (S_1) 和 (S_2),且 (S_2 \subseteq S_1),显然 (S_2) 不会比 (S_1) 大,我们需要明确在什么情况…

作者头像 李华