news 2026/9/2 7:00:12

性能测试:性能测试分类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
性能测试:性能测试分类

性能测试:性能测试分类

文章目录

  • 性能测试:性能测试分类
  • 1. 基准测试
  • 2. 并发测试
    • 并发测试的特点
  • 3. 负载测试
    • 3.1 负载测试的过程
    • 3.2 举重的例子
    • 3.3 负载测试案例
  • 4. 压力测试
    • 4.1 压力测试的过程
    • 4.2 压力测试和负载测试的区别
  • 5. 稳定性测试
  • 6. 总结:

这篇博客,是从这篇博客的内容中,分离出来的,用来介绍性能测试的。
上一篇博客: 测试(12) - 性能测试概念篇

如果你没有看过上一篇博客,推荐看到上一篇博客中,这篇博客的链接后,再点击那个链接,进来看这篇博客。

常见的性能测试类型包括:

  • 基准测试
  • 并发测试
  • 负载测试
  • 压力测试
  • 稳定性测试

下面分别介绍。

1. 基准测试

基准测试:Benchmark Testing,又称:单用户测试
基准测试主要用于:监测被测系统在较低压力下的运行情况,并记录相关数据。

当性能测试环境确定之后,通常会选择业务模型中的重要业务进行基准测试。
给系统施加一定压力,然后获取:系统在单用户运行情况下的各项性能指标。

这些数据可以作为后续:

  • 多用户并发测试
  • 混合场景测试

的参考依据。

简单来说:先让一个用户或者较低压力运行系统,得到一个“基准值”,然后再进行后续性能测试。


2. 并发测试

并发测试:Concurrency Testing
用于评估:多个用户同时执行某些操作时,系统的性能表现。

例如:多个用户同时登录系统 或者 多个用户同时操作某一个功能。
通过并发测试,可以获取:系统在多用户并发操作情况下的性能指标。
同时,还可以发现并发情况下容易出现的一些问题,例如:

  • 内存泄漏
  • 线程锁
  • 资源争用
  • 数据库访问错误
  • 数据写入错误

例如:多个用户同时访问某一条件数据,或者多个用户同时更新数据,就有可能发现:

  • 数据库访问错误
  • 写入错误

等问题


并发测试的特点

几乎所有性能测试都会涉及一些并发测试。

但是,并发测试对于:并发发生的时间要求比较严格。

因此通常需要借助专门的性能测试工具,通过:

  • 多线程
  • 多进程

等方式模拟多个虚拟用户同时操作系统。


3. 负载测试

负载测试:Load Testing,是性能测试的一种类型。

它主要用于:评估被测系统在预期的不同负载下的行为。

负载测试重点关注:系统处理不同负载的能力。

这些负载可以通过控制:

  • 并发用户数量
  • 进程数量

等方式实现。

3.1 负载测试的过程

进行负载测试时,可以不断增加系统的并发访问负载,然后持续监控系统性能变化。

直到系统某一项或者多项性能指标:达到安全临界值。
最终确定:在满足安全性能指标的前提下,系统能够承受的最大负载量。

简单来说:负载测试就是不断增加负载,找到系统能够正常工作的最大负载。

结合并发用户、系统吞吐量、系统响应时间之间的关系图来看:

负载测试:就是找系统的临界值,达到最大吞吐量的点


3.2 举重的例子

负载测试可以类比成:举重运动。
一开始给运动员:10kg
然后逐渐增加:20kg → 30kg → 40kg → 50kg……
直到找到:在身体状态保持正常的情况下,运动员能够举起的最大重量。

负载测试也是类似的。
不断增加系统负载:直到找到系统在满足性能要求的情况下能够承受的最大负载。


3.3 负载测试案例

假设:一个软件系统要求响应时间不能超过 2 秒。
现在不断增加用户访问量。

当访问量超过:1 万人之后,系统响应时间超过了 2 秒。
那么就可以确定:在响应时间不超过 2 秒的前提下,该系统能够承受的最大负载量约为 1 万人。

负载测试可以用于:

  • 系统性能验证
  • 性能诊断
  • 性能调优

4. 压力测试

压力测试:Stress Testing
主要用于评估:系统在高于预期负载、高于指定容量,或者资源不足情况下的表现。

压力测试关注的是:系统处理超出预期或者达到特定峰值负载的能力。
同时,也可以用于评估系统在资源不足情况下的处理能力。

例如:

  • 计算能力不足
  • 带宽不足
  • 内存不足

4.1 压力测试的过程

进行压力测试时,通常会:逐步增加系统负载。
让系统中的某些资源:达到饱和,甚至失效。

这样就可以发现一些只有在高负载情况下才会出现的问题,例如:

  • 同步问题
  • 内存泄漏
  • 系统性能急剧下降
  • 系统崩溃

压力测试:找到使系统崩溃的最大并发数

通过压力测试还可以:

  • 找到系统性能拐点
  • 找到系统能够提供的最大服务级别
  • 评估系统峰值负载下的处理能力
  • 评估系统超过最大负载后的处理能力

压力测试主要用于:

  • 性能诊断
  • 性能调优
  • 容量规划

4.2 压力测试和负载测试的区别

测试类型主要目的
负载测试找到满足性能指标要求时的最大负载
压力测试找到系统能够承受的极限

所以:负载测试关注“还能不能正常工作”,压力测试关注“什么时候到极限(系统崩溃)”。

可以简单记忆:

  • 负载测试:找到“正常工作的最大值”。
  • 压力测试:找到“系统的极限(系统崩溃)”。

结合并发用户、系统吞吐量、系统响应时间之间的关系图来看:

我们看横坐标(Server Resource):
[0 ~ Cx):就是负载测试的过程:找系统的临界值,达到最大吞吐量的点
[Cx~ Dx]:就是压力测试的过程:找到使系统崩溃的最大并发数

5. 稳定性测试

稳定性测试是在:负载测试的基础上进行较长时间的测试。
主要目的是:检查系统长时间运行情况下的稳定性。

例如:系统在正常负载下运行 1 小时,可能没有任何问题。
但是运行:10 小时、20 小时甚至更长时间之后,可能出现:

  • 内存不断增长
  • 响应时间逐渐增加
  • 系统资源不断消耗
  • 系统最终崩溃

因此需要通过长时间运行来发现这些问题。

通常来说:较长时间一般指 3 × 24 小时以上。
也就是:72 小时以上。

6. 总结:

常见的性能测试类型包括:

  • 基准测试:先让一个用户或者较低压力运行系统,得到一个“基准值”,然后再进行后续性能测试
  • 并发测试:获取系统在多用户并发操作情况下的性能指标。
  • 负载测试:负载测试就是不断增加负载,找到系统能够正常工作的最大负载,就是找系统的临界值,达到最大吞吐量的点
  • 压力测试:系统处理超出预期或者达到特定峰值负载的能力。,即 找到使系统崩溃的最大并发数
  • 稳定性测试:负载测试的基础上进行较长时间的测试检查系统长时间运行情况下的稳定性

最后,如果这篇博客能帮到你的,请你点点赞,有写错了,写的不好的,欢迎评论指出,谢谢!

回到性能测试博客:测试(12) - 性能测试概念篇

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

MATLAB中Kriging代理模型:从原理到工程优化实战

简介:本资源是一套面向工程优化、试验设计与代理建模初学者的MATLAB Kriging代理模型实践包,聚焦于空间插值与不确定性预测场景,适用于机械设计、环境模拟、响应面法(RSM)研究等需要高效替代模型的科研与工程任务。压缩…

作者头像 李华
网站建设 2026/9/2 6:59:17

从4K电台节目看音视频处理:响度标准化与流媒体技术拆解

这次我们来看的对象,严格说不是一个开源项目,而是一个电子音乐电台节目:LIQUID : LAB Radio 012,参与音乐人包括 ARTBAT、Layton Giordani、Simon Doty,右上角的 4K 标识说明它是带高清画面的视频内容。平时大家看到这…

作者头像 李华
网站建设 2026/9/2 6:58:51

【深度学习】模型选择、过拟合与欠拟合

一、训练误差 vs 泛化误差 训练误差(Training Error):模型在训练数据上的误差。 泛化误差(Generalization Error):模型在从未见过的新数据上的误差。类比:训练误差 平时做课堂练习的正确率&…

作者头像 李华
网站建设 2026/9/2 6:56:23

Mac看图工具Pixea:极简高效,替代预览的轻量之选

简介:这是一份专门为苹果电脑用户准备的极简看图工具安装包,用来替代系统自带预览程序,解决日常浏览图片时启动慢、占用高、格式支持少的问题。工具主打轻量启动和低内存占用,原生兼容 WebP、HEIC、AVIF、PSD、RAW、SVG 等多种现代…

作者头像 李华
网站建设 2026/9/2 6:55:13

Claude Code 深度使用指南:从“会用“到“用好“的7个进阶心法

导语:Claude Code 不是更聪明的自动补全,它是一个能读文件、跑命令、改代码的AI代理。但很多人用了几周后才发现:真正决定效率的,不是提示词技巧,而是你给AI搭的"轨道"够不够稳。 一、先认清本质:Claude Code 到底是什么? 很多人第一次用 Claude Code 时,把…

作者头像 李华
网站建设 2026/9/2 6:53:27

AI时代开发者转型指南:从代码执行者到解决方案架构师

最近在技术社区看到不少关于AI未来发展的讨论,其中DeepMind创始人Demis Hassabis博士关于“旧世界”时间窗口的预言引发了广泛思考。作为一名长期关注技术演进的后端开发者,我深感这并非危言耸听,而是对技术浪潮即将重塑产业格局的深刻洞察。…

作者头像 李华