news 2026/3/31 20:04:14

性能测试的几个主要术语及计算

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
性能测试的几个主要术语及计算

01 主要术语

用户数

有时会看到下面这样的描述:一个系统注册用户达到6000万人,其中每小时的活跃用户大概在60万人左右。这段描述介绍了两个信息,第一个信息:6000万人指的是注册用户,第二个信息:60万人指的是真实在线用户。

  • 注册用户数(系统用户数)

注册用户是存在于系统数据库表中的基础数据。这部分用户是指系统所拥有的所有用户群体。这些用户是不会全部对系统造成压力的,唯一的压力就是这些用户占用了系统的存储,影响了数据库的容量。

  • 在线用户

在线用户是真实产生压力的用户,这些用户是压力的根源,也就是系统要能够支持这么多人同时在线业务。

同时在线用户数:在一定的时间范围内,最大的同时在线用户数量

同时在线用户数 = 每秒请求数RPS(吞吐量)+并发连接数+平均用户思考时间

  • 并发用户

在线用户是真实的用户,但不是所有的在线用户都会在系统上操作,可能有些用户在浏览网页、有些用户在做业务、有些用户只是开着浏览器。这时在线用户对系统产生压力的用户只有一部分,而这部分用户就是在线用户中的有效并发用户

平均并发用户数的计算:C=nL / T

其中C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session的平均时间),T是考察时间长度(一天内多长时间有用户使用系统)

并发用户数峰值计算:C^约等于C + 3*根号C

其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论

对绝大多数场景,我们用(用户总量/统计时间)*影响因子(一般为3)来进行估算并发量

  • 虚拟用户

虚拟用户即Virtual User,简称Vuser,是性能测试工具产生的用户,用来模拟真实用户进行的一系列业务逻辑操作

事务(TPS)

  • 事务:事务指的是业务逻辑上的事务


    注册用户是一个事务,只用提交注册发生时到注册成功返回页面时的事务,它包括多个页面或者JS等组件的交互

  • TPS:每秒钟事务数量

  • 事务并发数:系统同时处理的事务数

  • 响应时间:一般的相应时间都是指事务从开始到结束时间;取平均响应时间

理解了上面三个要素的意义之后,就能推算出它们之间的关系:

TPS = 事务并发数/平均响应时间

事务并发数 = TPS*平均响应时间

无论有无思考时间(TS),测试所得的TPS值和并发虚拟用户数(Vu)、交易响应时间(T)之间有以下关系(稳定运行情况下):

TPS=Vu / (T+TS)

响应时间

对请求作出响应所需要的时间:

  • 网络传输时间:N1(发送请求)+N2(内部处理请求)+N3(返回结果)+N4(展示结果)

  • 应用服务器处理时间:A1(处理请求)+A3(返回结果)

  • 数据库服务器处理时间:A2(操作数据库时间)

响应时间=N1+N2+N3+N4+A1+A3+A2

在性能测试结果分析中,分为事务最小响应时间、事务平均响应时间、事务最大响应时间和90%事务响应时间。一般时间的标准时间为90%响应时间,即测试过程中90%的业务用了多长时间。

QPS

在性能测试中有时可以将TPS、QPS认为是一样的:

  • QPS:每秒钟request数量(每秒查询率),是对一个查询服务器在规定时间内所处理流量多少的衡量标准

  • 请求并发数:系统同时处理的request数

  • 响应时间:一般取平均响应时间

理解了上面三个要素的意义之后,就能推算出它们之间的关系

QPS= 请求并发数/平均响应时间

请求并发数= QPS*平均响应时间

一个典型的上班签到系统,早上8点上班,7点半到8点的30分钟的时间里用户会登录签到系统进行签到。公司员工为1000人,平均每个员工登录签到系统的时长为5分钟,可以用下面的方法计算:

QPS = 1000/(30*60) 事务/秒

平均响应时间 = 5*60 秒

并发数= QPS平均响应时间 = 1000/(3060) (560)=166.7

PV(Page View)

PV即Page View,意思是页面浏览量或单机率,通常是用来衡量一个网站的主要指标

一个PV狭义上讲等于一个TPS,可以将页面元素从性能测试结果中分析出来,所以也可以将PV和TPS整合;但是广义上来说,一个页面有很多的图片、链接和CSS等,而这里的每一个图片、链接都是PV

思考时间

Think Time,从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔,而在做性能测试时,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。

  • 在吞吐量这个公式中F=Vu * R / T说明吞吐量F是Vu数量、每个用户发出的请求数R和时间T的函数,而其中的R又可以用时间T和用户思考时间TS来计算:R = T / TS

下面给出一个计算思考时间的一般步骤:

A、首先计算出系统的并发用户数

C=nL / T F=R×C

B、统计出系统平均的吞吐量

F=VU * R / T R×C = VU * R / T

C、统计出平均每个用户发出的请求数量

R=u*C*T/VU

D、根据公式计算出思考时间

TS=T/R

吞吐量(一般指字节)

吞吐量是一次性能测试过程中网络上传输的数据量的总和,也可以这样说在单次业务中,客户端与服务器端进行的数据交互总量

  • 对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,他能够说明系统的负载能力

  • 一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。

吞吐率(一般指字节)

吞吐率作为一个重要的衡量指标,最主要应用在并行处理上,属于系统结构中最重要的一个变量,它的定义是:单位时间的吞吐量

  • 吞吐率在性能测试中指单位时间内在网络上传输的数据量。是衡量网络性能的主要指标。

  • 从网络角度看,吞吐率可以用:字节/秒来衡量

  • 从业务角度看,吞吐率可以用:请求数/秒、页面数/秒、人数/天或处理业务数/小时 等单位来衡量

  • 以不同方式表达的吞吐率可以说明不同层次的问题。

例如,以字节数/秒方式可以表示数要受网络基础设施、服务器架构、应用服务器制约等方面的瓶颈;已请求数/秒的方式表示主要是受应用服务器和应用代码的制约体现出的瓶颈。

  • (请求数)当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=Vu * R /T

    其中F:吞吐率,Vu:虚拟用户个数,R:每个虚拟用户发出的请求数,T:性能测试所用的时间

性能计数器

是描述服务器或操作系统性能的一些数据指标,如使用内存数、进程时间,在性能测试中发挥着“监控和分析”的作用,尤其是在分析统统可扩展性、进行性能瓶颈定位时有着非常关键的作用。

  • 资源利用率:指系统各种资源的使用情况,如cpu占用率为68%,内存占用率为55%,一般使用“资源实际使用/总的资源可用量”形成资源利用率。

02 几个非主要术语

集合点

  • 插入集合点是为了衡量加重负载情况下的性能情况

  • 在计划中,可能会要求系统承受1000人同时提交数据,在提交数据操作前加入集合点,当虚拟用户运行到提交数据的集合点时,会自动检查同时有多少用户运行到集合点,当达到指定用户数时,将命令指定用户数同时提交数据,从而达到同时提交的要求

  • 集合点是相对的,因为没有绝对的并发,集合点只是尽可能的在同一时间发送请求,但是服务器是没办法在同一秒接受并处理请求的

迭代

迭代是重复执行过程,性能测试中就是一个事务流程重复执行的过程。通过调整每次迭代的时间,就能控制整个事务流程完成的时间,进而控制TPS的大小

步调

步调是指两次迭代之间的间隔时间,可以通过设置步调来调整各个Action之间的执行等待时间。从定义上看,步调和迭代是绑定在一起的,可以认为是Iteraction Pacing

每秒连接数

每秒连接数实现Web应用程序在运行过程中每秒建立的HTTP连接数。理想情况下,很多HTTP请求都应该使用同一个连接也就是长连接,而不是每个请求都新打开一个连接。如果程序中不断的打开长连接或者频繁的创建达到上千个短连接,那么应用服务器的响应会越来越慢。通过每秒连接数可以看出服务器的处理情况。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

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

纯干货!一文搞懂自动化测试哪些事儿!

什么是自动化测试? 维基百科是这样定义的: In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcom…

作者头像 李华
网站建设 2026/3/27 4:36:49

【2025版】什么是渗透测试工程师?高级渗透测试工程师证如何报考?从零基础到精通,收藏这篇就够了!

渗透测试工程师 渗透测试工程师,又称为白帽黑客,是专门从事网络和信息系统安全评估的专业人员。其主要任务是模拟黑客攻击的方式,主动寻找系统、网络、应用程序中的安全漏洞和弱点,以帮助企业或组织评估和增强其网络安全防护能力…

作者头像 李华
网站建设 2026/3/31 19:23:34

网易云信以智能化底座,助力央国企构筑招采远程评审新范式

为持续推进“放管服”改革,深入贯彻落实国家关于加快建设全国统一大市场的决策部署,深化政府采购制度改革,近日,山西省与其他12省市共同签署《政府采购跨省远程异地评审合作协议》(以下简称《协议》),旨在探…

作者头像 李华
网站建设 2026/3/31 5:27:49

内冷式砂轮的理论研究

第三章内冷式砂轮的结构设计 要解决的主要问题: 1、设计砂轮内部冷却结构,提高砂轮冷却液的利用效率。 2、解决外冷方式冷却不足的问题。 3、保持冷却液在砂轮使用过程中的冷却方向一致。 内冷式砂轮的工作原理 内冷式砂轮工作原理:通过液压…

作者头像 李华
网站建设 2026/3/31 2:43:07

大专java找工作好难,转行做什么?

这是小红书上一位上海的Java程序员失业想转行的分享贴。 Java开发的就业市场正在经历结构性调整,竞争日益激烈 传统纯业务开发岗位(如仅完成增删改查业务的后端工程师)的需求,特别是入门级岗位,正显著萎缩。随着企业…

作者头像 李华