当前位置: 首页 > news >正文

性能测试相关概念

一、性能测试

概念:为了发现系统性能问题或获取系统性能相关指标而进行的测试。

对软件来说,常见的性能问题:

  • 查询数据时间过长
  • 网速过慢
  • 服务器无响应
  • 查询数据很长时间才显示结果
  • ......

二、性能测试常见指标

1、并发量

并发量,即并发用户数。

从业务层面看,并发用户数指的是实际使用系统的用户总数。

从后端服务器看,指的是wed服务器在一段时间内处理浏览器请求而建立的http连接数或胜场的处理线程数。

例:一个已经投入使用的web系统,最多时有500人同时使用,这些用户进行的操作,分别是浏览页面、查询订单、提交订单的操作。那么这个系统的业务并发用户数就是500,而实际并发用户数是进行提交订单和查询订单操作的用户数量。

2、响应时间

响应时间,指的是应用系统从请求出发开始,到客户端收到最后一个字节数据所消耗的总时间。

对于web系统来说,响应时间分为两部分,一是前端展现时间;二是系统响应时间

前端展现时间:页面渲染时间

系统响应时间:包含服务器、数据库、通讯网络等的响应时间

3、吞吐量

吞吐量,指的是单位时间内处理的并发数,能够直接体现软件系统负载承受能力。吞吐量越高,系统性能越好。

吞吐量 = 并发数 / 响应时间

例:有A、B两个场景:

A场景,有100个用户,每个用户隔1秒发送一个请求;

B场景,有1000个用户,每个用户隔10秒发送一个请求。

A和B场景的吞吐量相同,A:100/1 = 100 个/秒;B:1000/10 = 100 个/秒。但是A场景的思考时间短(处理时间短),所以A场景占用的系统资源更多。

吞吐量的分类:

1、按请求数量分:TPS和QPS

TPS:每秒处理事务数,用于衡量系统在一定时间内处理的事务数量

事务:一个接口可以是一个事务,多个接口也可以是一个事务,一个流程也可以是一个事务。事务代表一个完整的功能。

TPS的计算公式:处理成功的总事务数 / 总的用时

例1:某系统5分钟成功处理了3000个事务,TPS = 3000 / (5*60) = 10

例2:2025年最高的一天有15万笔交易,预测2026年TPS需要多少才能合格?认为每笔交易就是一个事务,理论上来说TPS = 150000 / (24*60*60) = 1.74(理想状态)。然而实际上,订单量并不是平均在一天的每个时间段的,而是在某个时间段突然增加的,因此:

(1)没有详细的数据时,按照二八定理(20%的时间内处理80%的事务):

TPS = (150000 * 0.8)/(24*60*60 * 0.2) = 6.94

(2)有详细的数据:这15万笔交易,有10万笔是在早上八点到九点半进行的:

TPS = 100000 / (1.5*60*60) = 18.52,(参考以往业务的增加,假设每年比上一年的 业务数量增加20%,则TPS = (100000 + 100000 * 0.2)/ (1.5*60*60)= 22.22)

QPS:每秒查询数

当一个接口就是一个事务的时候,且都是查询接口时,QPS = TPS。

2、按照网络数据包分:KB

4、资源利用率

通过查看系统占用的情况分析资源瓶颈

服务器占用的资源通常包括:网络、内存、磁盘、CPU

5、并发数、响应时间、吞吐量的关系

当并发用户较少时,系统的吞吐量较低,系统的响应时间较短。这个时候,我们认为系统处于空闲区间(图中[0,Ax])。

随着并发用户的增加,系统吞吐量开始呈线性增长,系统性能进入线性增长区间(图中[Ax,Cx])。

吞吐量在某个点达到饱和点,也称为拐点。在这以后用户请求不再被立即处理,响应时间变长,吞吐量开始降低,系统性能进入饱和区间(图中Cx以后)。

系统性能的拐点通常时性能测试的主要目的。

三、性能测试分类

1、基准测试

基准测试,又称单用户测试。主要用于监测被测系统在较低压力下的运行状况并记录相关数据。当性能测试环境确定以后,通常选取业务中最重要的部分进行基准测试,对被测系统施加一定压力,从而获取被测系统在单用户运行情况下的各项性能指标,为多用户并发测试和混合场景测试提供参考依据

2、并发测试

并发测试用于评估被测系统的某些特定操作同时发生时的性能表现(侧重同时性)。例如,被测系统被多个用户同时登录时的响应能力,或系统的某一功能被多个用户同时操作时的性能表现。通过并发测试,不仅可以获得被测系统在多用户并发操作时的性能指标,还可以发现被测系统在并发条件下可能发生的问题,如内存泄漏、线程锁、资源争夺等问题。例如,通过模拟多个用户同时访问一条数据,或模拟多个用户同时更新数据,可能会发现被测系统的数据库访问错误、写入错误等。几乎多有的性能测试都会涉及到并发测试。但并发测试对并发时间要求比较苛刻,通常需要借助专门的性能测试工具,采用多线程或多进程的方式来模拟多个用户的同时操作。

3、负载测试

负载测试是性能测试的一种测试类型,用于评估被测系统在预期的不同负载下的行为。负载测试关注系统处理不同负载的能力,这些负载可以通过控制并发用户数或者进程数来实现。进行负载测试时,通过对系统不断增加并发访问负载,监测系统性能的变化,直到系统的某项或多项性能达到安全临界值,最终确定在满足该安全临界值的性能指标下,系统所能承受的最大负载量。简而言之,负载测试就是通过逐步增加负载的方式来确定系统的处理能力。通过负载测试可以获取系统能够达到的峰值指标。

例:一个系统要求响应时间不能超过2秒,在并发用户数为10000时,系统的响应时间为2秒。但是在并发用户数超过10000时,系统的响应时间超过2秒。所以,对这个系统来说,它的最大负载就是10000。

负载测试可以用于系统的性能验证性能诊断性能调优等场景。

4、压力测试

压力测试用于评估被测系统在高于预期、高于指定容量负载需求或低于最少需求资源的条件下的行为。压力测试关注被测系统处理超出预期或特定峰值负载的能力,也可以用于评估系统在资源匮乏时的处理能力。例如在可用的计算能力、带宽和内存资源不足的条件下系统的表现。进行压力测试时通常采用逐步增加系统负载的方式,使系统某些资源达到饱和甚至失效,从而发现那些只有在高负载条件下才会出现的缺陷,如同步问题,内存泄漏等。通过对被测系统进行压力测试,也能找出被测系统的性能拐点,获得系统所能提供的最大服务级别(系统能承受的最大压力),评估系统在峰值负载或超出最大负载情况下的处理能力。

压力测试主要用于性能诊断性能调优容量规划等场景。

5、稳定性测试

在负载测试的基础上,执行较长时间的测试用来检测系统的稳定性。通常较长时间指的是3*24小时以上。

6、压力测试与负载测试的区别

压力测试与负载测试不同。

负载测试是保持性能指标要求的前提下,测试系统的最大承受负载能力;而压力测试是在测试系统性能能够达到极限状态的负载能力。

例如,软件系统要求的响应时间是2秒。进行负载测试发现,当访问量超过1万时,系统的响应时间超过2秒,那么在满足系统响应时间的前提下,该系统能够承受的最大负载就是1万。进行压力测试时,可以在1万的基础上继续增加访问量,并观察系统性能的变化。加入,当系统的访问量达到2万时,系统的响应时间为5秒,但是系统仍旧可以正常运行,当访问量达到3万时,系统崩溃,无法正常运行。由此就可以确定系统能够承受的极限是3万访问量。

简单来说,负载测试就是要找到在一定的前提下,系统性能的峰值;而压力测试则是要找到使系统崩溃的临界值,也就是系统性能的极限。

http://www.cnnetsun.cn/news/1763992.html

相关文章:

  • 离散数学等价关系证明实战:从定义到解题技巧全解析
  • Qwen2.5-14B-Instruct应用场景:像素剧本圣殿为播客创作者自动生成对话脚本
  • 敏捷教练的测试工具箱:协作与质量并重
  • Oracle DBA 效率提升的秘密:批量部署环境再也不头疼!
  • 【AI原生开发实战】1.2 传统开发 vs AI原生开发:思维转变与架构差异
  • 行李箱密码锁怎么设置?3 类常见锁型通用教程 + 安全避坑指南
  • Dynamic Focus in Bounding Box Regression: How Wise-IoU Optimizes Anchor Box Learning
  • wscat 高级功能详解:SSL 证书、代理和认证配置实战
  • 从‘上不了百度’到搞懂DNS:一次真实的网络故障如何带我入门计算机网络
  • NaV1.8抑制剂苏泽曲林的理化性质与制备方法
  • 别再只用ARIMA了!用PyTorch手把手教你搭建N-BEATS模型预测销量(附完整代码)
  • Linux 线程:从虚拟地址空间到 POSIX 线程控制全解析
  • 抖音无水印视频批量下载终极指南:从零搭建高效内容获取工作流
  • Unity游戏翻译完整指南:让语言不再成为游戏障碍
  • Carsim-Simulink联合仿真MPC主动悬架 MPC是一种根据模型预测的方式在有限时域内求解最优解的控制方法,
  • 零门槛AI上色:cv_unet_image-colorization+Streamlit可视化工具教程
  • Kubernetes与IoT设备管理集成
  • WPA2真的过时了吗?从Python字典攻击原理,聊聊WPA3和强密码设置
  • 无名图片分割:极简设计,专业体验,新手也能轻松上手
  • 快速上手GLM-OCR:无需代码基础,网页上传图片即可提取文字
  • 大模型微调实战指南:LoRA与QLoRA原理及其在软件测试智能化中的应用
  • Emby Premiere功能完全解锁指南:如何免费获得完整媒体服务器体验
  • FanControl终极指南:3步掌握Windows智能风扇控制技巧
  • Java(十三)接口
  • 菜谱之麻婆豆腐
  • 2026沈阳GEO AI搜索优化本地企业如何选对服务商抢占AI流量
  • 树莓派风扇调速避坑指南:实测S8050与S8550三极管方案,为什么我最终放弃了PNP型?
  • BEVFusion模型训练参数调优实战:如何用单卡在Nuscenes mini数据集上快速验证想法
  • 突破格式壁垒:Save Image as Type让图片处理工作流效率提升3倍
  • 如何用ROFL播放器轻松管理你的英雄联盟回放文件