什么是基准测试?

⚡ 智能摘要

基准测试为应用程序性能建立了一个可重复、可衡量的标准,以便将未来的每个版本都与之进行比较。如果没有基准,性能结果就只是一个数字,没有任何参照物。

  • 📏 核心宗旨: 创建一个参考测量标准,用于与后续版本进行比较。
  • 🔁 可重复性规则: 每次都必须使用相同的硬件、数据和配置,否则比较就没有意义。
  • 📐 四个阶段: 计划、分析、整合和行动,每个环节都有明确的产出。
  • 🧪 隔离: 每次运行只改变一个变量,否则无法解释差异。
  • 📊 比较基准: 基准测试是将产品与之前的版本、竞争对手或行业标准进行比较。
  • ⚠️ 常见错误: 在共享或虚拟化环境中进行基准测试产生的噪声大于所测量的效果。

什么是基准测试

在学习基准测试之前,让我们先了解一下-

性能测试基准

A 性能测试基准 是衡量软件产品或服务的指标或参考点,可以与它进行比较以评估质量指标。换句话说,基准是指一套有助于确定软件产品或服务质量的标准。我们可以对软件产品或服务进行基准测试以评估其质量。

例如,一支足球队有一个标准,规定一名球员是否有资格成为 英超联赛球员。 基准的技能组合可能是过去五个赛季的进球数、上半场的控球率、或在当地锦标赛中参加的最低比赛场次等。

什么是基准测试?

基准测试 测量一组可重复的可量化结果,作为比较产品/服务的参考点。基准测试结果的目的是将当前和未来的软件版本与各自的基准进行比较。

必须有一个基准 可重复的。例如,在每次负载测试中,如果响应时间差异太大,则必须对系统性能进行基准测试。响应时间需要在不同的负载条件下保持稳定。

必须有一个基准 量化比如,用户体验是无法用数字来量化的,但是用户因为好的UI而花在网页上的时间是可以量化的。

基准测试不仅仅是与软件测试相关的术语,它还涉及硬件测试 并被认为是商业世界中最重要的任务之一。

在本教程中,我们将讨论客户端-服务器应用程序(即 Web 应用程序)的基准测试。可以针对以下服务进行基准测试,

  • 浏览器兼容性
  • 破碎的链接
  • HTML合规性
  • 加载时间
  • 无障碍服务
  • 链接流行度

为什么基准测试很重要

在业务层面,基准测试有助于确定

  • 相对于竞争对手,基于 Web 的应用程序表现如何
  • 不同类型的客户如何体验网站的响应时间和可用性
  • 它确保网站符合标准和最佳实践
  • 它允许在进行交易前评估第三方服务提供商。trac决策
  • 可以找出要避免的错误

创建基准测试计划

测试计划是基准测试过程中最关键的要素。基准测试计划遵循以下步骤:

  1. 扩展和调用工作负载
  2. 收集并存储基准测试的指标
  3. 定义测试过程所需的时间跨度和终点
  4. 准备备用计划以克服任何新的测试用例失败
  5. 决定调用终止进程的权限

如何进行基准测试

基准测试涉及四个阶段:

基准测试

步骤1)规划阶段

  • 确定标准和要求并确定其优先顺序
  • 确定基准标准
  • 定义基准测试流程

步骤2)分析阶段

  • 找出错误的根本原因以提高质量
  • 设定测试过程的目标

步骤3)整合阶段

  • 与相关人员分享结果并获得批准
  • 建立职能目标

步骤4)行动阶段

  • 制定测试计划和文档
  • 实施前几个阶段指定的行动并监控进展情况
  • 持续运行该流程

基准测试的组成部分

不同的系统具有不同程度的复杂度,并且需要不同的技术来测试应用程序。

基准测试有 3 个主要组成部分。它们是

  1. 工作负载规格: 确定要提交给被测系统的请求的类型和频率。
  2. 指标规格: 确定要测量的元素,例如下载速度
  3. 测量规格: 确定如何测量指定元素以找到适当的值

基准测试时需要考虑的事项

为了成功运行基准测试,需要考虑以下事实。

  • 一致性和控制 是进行基准测试的重要措施。
  • 了解系统架构以设计测试标准和测试数据
  • 检查初始静态数据并根据用户数量进行更新
  • 检查所需的“重置”功能并定义每秒交易率(这专门处理用户针对数据库的交易)
  • 根据功能划分系统元素
  • 每个系统都有不同的架构和设计,在执行基准测试时需要考虑到这一点
  • 确保所有软件组件均处于正常工作状态
  • 操作系统和支持驱动程序应准确运行
  • 运行基准测试之前从系统中删除预取文件和临时文件
  • 关闭所有在后台运行的进程和应用程序
  • 检查操作系统更新和实际配置

基准测试框架

基准测试框架有助于执行性能检查的一些基本任务。这些基本任务包括:

  1. 数据库访问
  2. 服务器端组合
  3. JSON 序列化
  4. 配置

基准框架 2.0 & 技术赋能 最常用的是基准测试框架。

让我们来看看 TechEmpower。我们将快速浏览一下它的突出特点。

  • 它是一个用于执行基准测试任务的开源框架
  • 需要正确配置基准测试环境
  • 主要有两种模式,例如 基准模式 用于比较结果和 验证模式 对于那些非专家
  • 需要几个文件,这些文件都是唯一的,并且可能因系统而异
  • 它包括一个“基准配置文件”,该文件定义了基准程序的一组测试指令和元数据
  • 它基于多种语言,例如 Java, Python、Ruby、PHP、 Java脚本、Perl、C、 Groovy、Haskell、Scala 等
  • 对象关系映射器 (ORM) 用于对数据库、JSON 序列化等执行测试。

基准测试工具

基准测试工具也按照类别进行分类。我们将逐一列出。

测试工具 Windows 件:

  1. Prime95
  2. Novabench
  3. 3DMark
  4. SiSoftware Sandra里

测试CPU性能的工具:

  1. Cineb附魔
  2. Geekbench

测试系统速度和移动设备电池的工具:

  1. Phoronix (Linux)
  2. 中央处理器 UserBenchmark (CPU 基准测试)
  3. Vellamo(网页浏览性能)

基准测试也可以通过以下方式进行 Android 手机和平板电脑。其中, 合格标志 是一个著名且广泛使用的基准测试工具。

此测试如何融入性能测试系列

性能测试是一个统称。以下列出的各种测试方法仅在施加的载荷形式和保持时间上有所不同,因此它们经常被混淆。

测试类型 负载模式 它解答的问题
负载测试 预计峰值负荷,持续时间短 在正常高峰交通流量下,该系统能否达到其目标?
压力测试 超出负荷直至失效 它会在哪里出现故障?故障发生时是否体面?
尖峰测试 突然的极端激增,然后是撤退 它能否在交通冲击后幸存并恢复?
耐力测试 正常负荷持续数小时 性能会随着时间推移而下降吗?
浸泡测试 长时间持续负荷 是否存在内存泄漏或资源耗尽?
稳定性测试 不同条件下的负载变化 随着环境变化,系统是否仍能保持可靠性?
容量测试 普通用户,数据量非常大 随着数据库的增长,它能否应对?

耐久性测试和浸泡测试经常被视为同义词。 通常来说,耐久性测试和负载测试都是长时间持续高负载运行的测试。如果团队确实区分这两者,耐久性测试侧重于响应时间是否会逐渐延长,而负载测试则侧重于内存、文件句柄和连接池等资源消耗。运行其中一项测试通常就能提供这两项测试的结果。

基准测试:主要结论

  • 在软件工程中,基准测试为系统性能提供了一组可重复的、可量化的结果。
  • 有助于锻炼负载条件并确定系统抵御 DDoS 攻击的行为。
  • 工作负载规范、指标和测量规范是基准测试的主要组成部分。
  • 有多种工具和框架可用于快速有效地执行基准测试。
  • 基准测试对于移动设备也很有用。

常见问题

性能测试衡量系统在负载下的运行情况。基准测试将该测量结果记录为固定的参考标准,以便在相同条件下将后续版本与之进行比较。

因为硬件、数据量或配置的任何变化都会改变结果。基准测试在不同环境下的性能对比衡量的是环境,而不是软件。

当环境、数据量或架构发生重大变化时,需要进行更新。否则,应保持基线不变,因为基线的价值在于其在不同版本之间的稳定性。

AI 工具可以检测运行之间具有统计学意义的回归,并将其与正常方差区分开来,从而消除了判断轻微减速是否重要的​​猜测。

是的。模型会根据历史运行分布而非固定百分比来推导出阈值,并随着应用程序的增长而进行调整。 Rev在管道中强制执行限制之前,请先查看导出的限制。

总结一下这篇文章: