首页 > 其他分享 >性能测试的类型有哪些

性能测试的类型有哪些

时间:2024-10-09 11:17:39浏览次数:11  
标签:负载 哪些 性能 系统 并发 测系统 测试

目录

1.基准测试

2.负载测试

3.压力测试

4.峰值测试

5.并发测试

6.容积测试

7.稳定性测试

8.可扩展性测试

9.配置测试


性能测试是为测量或评估被测软件系统与性能效率相关的特性而实施的一类测试,它关注被测系统在不同负载下的各种性能效率。软件系统的性能效率相关特性的覆盖面非常广泛,包括系统的执行效率、资源占用、系统容量等。

性能测试是一个广泛的领域,它包括多种类型的测试,每种类型都有其特定的目标和应用场景。

相应地,性能测试的类型很多,如负载测试、压力测试、基准测试、峰值测试、并发测试、容积测试、可扩展性测试、配置测试、稳定性测试等。

1.基准测试

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

2.负载测试

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

负载测试类似于举重运动,通过不断给运动员增加重量,确定运动员在其身体状况保持正常的情况下所能举起的最大重量。通过负载测试可以获取系统能够达到的峰值指标。例如,一个软件系统的响应时间要求不超过2秒,如果在这个前提下不断增加用户访问量,系统的响应时间就会变长。假设当访问量超过1万人时系统的响应时间超过2秒,那么就可以确定在系统响应时间不超过2秒的前提下,系统的最大负载量是1万人。负载测试可用于系统的性能验证、性能诊断和性能调优等场景。

3.压力测试

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

通过对被测系统进行压力测试,也能找出被测系统的性能拐点,获得系统所能提供的最大服务级别(系统所能承受的最大压力),评估系统在峰值负载或超出最大负载情况下的处理能力。压力测试主要用于性能诊断、性能调优和容量规划等场景。

压力测试与负载测试不同。负载测试是在保持性能指标要求的前提下测试系统能够承受的最大负载,而压力测试则是测试系统性能达到极限的状态。例如,软件系统要求的响应时间为2秒。进行负载测试时发现,当访问量达到1万时,系统响应时间不超过2秒,而当访问量超过1万时,系统响应时间则会超过2秒,那么在满足系统响应时间指标的前提下,该系统能够承受的最大访问量是1万。进行压力测试时,则可继续增加系统的访问量,并观察系统的性能变化。例如,当系统访问量增加到2万时,发现系统响应时间延迟到5秒而当访问量增加到3万时,系统则崩溃,无法做出响应。由此可以确定系统能达到的极限访问量是3万。

4.峰值测试

峰值测试(Spike Testing)又称尖峰测试或尖峰冲击测试。

软件行业的峰值测试是从电力等其他行业借鉴而来的一种压力测试类型。在电力工业中,冲击测试用来验证电力设备在刚刚接通电源时能否经受住涌流的破坏。所谓涌流,就是在电源接通的瞬间电流突然变大的现象,涌流过后,电流会逐渐恢复到正常的水平。在软件行业中,峰值测试是为了确认在负载压力发生不可预测变化(如负载压力突然急剧增加)时,被测系统是否能做出正确反应以及维持正常工作,并在峰值负载过后恢复稳定状态,从而评估被测系统对突然爆发的峰值负载的应对能力。

5.并发测试

并发测试(ConcurrencyTesting)用于评估被测系统的某些特定操作同时发生时的性能表现,例如,被测系统被多个用户同时登录时的响应能力,或系统的某一功能被多个用户同时操作时的性能表现。通过并发测试,不仅可以获得被测系统在多用户并发操作时的性能指标,还可以发现被测系统在并发条件下可能发生的问题,如内存泄漏、线程锁、资源争用问题。例如,通过模拟多个用户同时访问某一条件数据,或模拟多个用户同时更新数据,可能会发现被测系统的数据库访问错误、写入错误等。

几乎所有的性能测试都会涉及一些并发测试。但并发测试对并发时间要求比较苛刻,通常需借助专门的性能测试工具,采用多线程或多进程的方式来模拟多个虚拟用户的并发性操作。

6.容积测试

容积测试(Volume Testing)可用于评估被测系统在满足规定的性能目标前提下可以支持的用户量或者处理的事务量。容积测试通常是在一定的软硬件及网络环境下验证被测系统所能支持的最大用户数、最大存储量等。而容积测试所得的结果就是容量(Capacity),所以有些资料或书籍也将容积测试称为容量测试(Capacity Testing)。被测系统的容积通常与数据库、系统硬件(如CPU、内存、磁盘等)等资源有关,容积测试的结果可用于规划未来当需求增长(如用户数量增加、业务量增加等)时数据库和系统资源的优化方案。

7.稳定性测试

稳定性测试(StabilityTesting)有时也被称为疲劳强度测试(Endurance Testing)或浸泡测试(SoakTesting)。

稳定性测试可以评估被测系统在一定运行周期和一定负载压力条件下的出错概率、性能劣化趋势等,以帮助减少被测系统上线后出现崩溃、卡死等现象,为被测系统的逐步优化提供方向上的建议。稳定性测试关注被测系统在特定运行环境下的稳定性,通常是给被测系统施加一定业务压力,例如正常负载压力或略高于正常负载的压力,使被测系统在特定的负载下连续运行一段时间,观察被测系统各个性能指标的变

化,以此验证被测系统是否能够连续稳定运行。在稳定性测试过程中,被测系统的运行时间较长,通常可以检测出是否存在内存泄漏、系统错误、数据库连接错误或线程池错误等问题。这些问题会导致被测系统在某个时间点(拐点)出现性能下降或者失效的情况。测试人员应根据被测系统在实际生产环境中的使用要求来确定被测系统进行稳定性测试需要持续的时间。例如,如果一个系统在设计时考虑在生产环境下的使用周期是一周中5个连续的工作日,那么该系统进行稳定性测试的持续运行时间可以是5x24小时。

8.可扩展性测试

可扩展性测试(Scalability Testing)通常用于评估被测系统在性能效率方面的扩展或增长能力,以确定被测系统适应外部性能需求变化的能力。例如,当被测系统需服务更多用户或存储更多数据时,通过可扩展性测试确定被测系统的性能是否能够扩展或增加,从而适应和满足这些需要。

可扩展性测试关注被测系统是否拥有满足未来效率需求的能力。因此,可扩展性测试是在系统的性能指标符合当前的性能需求且不造成系统失效的前提下,验证被测系统的增长能力。如果确定了被测系统可扩展性的极限,那么就可以在生产中设置相关指标的阈值并对此进行监控,在系统可能出现问题时发出警告。另外,可扩展性测试的结果数据也可以用于指导调整生产环境的硬件数量和配置。

9.配置测试

配置测试(Configuration Testing)是为了合理地调配资源以及提高系统运行效率,通过测试手段来获取、验证、调整配置信息的过程。配置测试通过对被测系统不断增加压力,并在加压过程中调整被测系统的软硬件环境配置,监控被测系统的资源使用情况和各项指标,了解各种配置参数对系统性能的影响程度,从而找出性能瓶颈,并在此基础上重新配置软、硬件环境,找到系统各项资源的最优分配原则和最佳配置标准,为设备选择、设备配置提供参考。配置测试也常常用于性能调优、容量规划等。

每种性能测试类型都有其侧重点。在性能测试实践中可以根据测试目标选择合适的性能测试类型应用于特定的项目。

不同需求的系统与软件宜采用的性能测试类型,空格中标注橙色的为推荐采用的测试类型

这些测试类型可以根据项目的需求单独进行,也可以结合在一起形成全面的性能测试策略,正确实施性能测试可以帮助团队发现潜在的问题,并在产品发布前解决它们。

标签:负载,哪些,性能,系统,并发,测系统,测试
From: https://blog.csdn.net/qd_lifeng/article/details/142779151

相关文章

  • java中对比两个对象哪些字段不同(反射获取对象的字段和value值)
    场景:当需要对比两个对象的哪些字段的value值不同时,使用原理:通过反射来获取对象中每个字段的value值,进行对比1.获取需要比对对象的Class对象 比对的是obpPurQualityCheckTaskItem和obpPurQualityTaskItemExportDto对象,但因为他们是两个不同的类,所以都需要获取2.获取需要比......
  • 高带宽示波器在信号测试分析中的优势和主要应用场景
    最近,普源精电推出了一款13GHz带宽的示波器DS81304,。有些小伙伴会好奇,为什么普源示波器的带宽会从5GHz跳到13GHz,为什么不是到10GHz或者15GHz呢?13GHz的示波器又能干些什么呢?下面讲为大家介绍,为什么DS81304设计为13GHz带宽,以及DS81304相比5GHz带宽的DS70504又能有什么特点。为......
  • 【星闪开发连载】SLE_UUID_Server和SLE_UUID_Client程序测试
    引言前一篇博文介绍了SLE_UUID_Server和SLE_UUID_Client程序的基本结构,这篇介绍如何进行测试,从而实现两块星闪开发板之间的连接。服务器的构建在sdk根目录下(即src目录)打开集成终端台,执行python build.py-cws63-liteos-appmenuconfig命令,会出现选择弹窗。menuconfig这......
  • 软件测试与测试阶段
    软件测试概述    软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。    软件测试的目的就是确保软件的质量、确认软件以正确的方式做了用户所期望的事情,所以软件测试工......
  • kubekey 快速构建重构测试k8s 环境 allinone单机 or cluster 集群
    exportKKZONE=cncurl-sfLhttps://get-kk.kubesphere.io|VERSION=v3.0.13sh-生成配置k8s集群yml指定k8s版本及管理面板./kkcreateconfig--with-kubernetesv1.23.10--with-kubespherev3.4.1apiVersion:kubekey.kubesphere.io/v1alpha2kind:Clustermetada......
  • 有哪些事一看就知道一个硬件工程师是个水货?
    某网友表示,自己是一名硬件工程师,在日常工作中总能碰到对同事不满的事儿,他发现总有一些人和自己的追求不一样,从工作中的方方面面都能体现一个人的不专业,于是它总结了几条,希望能通过对“水”的批判来修正自己!1、示波器,DDS,电源,负载基本仪器原理操作不懂,电脑手机配置,基本参数......
  • 课上测试:位运算(AI)
    2.使用位运算编写并调用下面函数,把当前时间(使用C库函数获得)设置到TIME中,给出代码,使用git记录过程。为了使用位运算将当前时间设置到一个自定义的TIME结构体或变量中(尽管通常我们不会直接用位运算来处理时间,因为时间通常是由多个独立的字段如小时、分钟、秒等组成的),我们可......
  • 基于稀疏CoSaMP算法的大规模MIMO信道估计matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
    1.算法仿真效果matlab2022a仿真结果如下(完整代码运行后无水印):     2.算法涉及理论知识概要      大规模MIMO技术通过增加天线数量来显著提升无线通信系统的性能。然而,随着天线数量的增长,信道状态信息(CSI)的准确获取变得越来越具有挑战性。传统的信道估计方法......
  • 模板测试
     模板测试(StencilTest)是3D渲染中的一种技术,它根据预设条件比较参考值与模板缓冲区的值来决定片段是否进行下一步深度测试。本文介绍了模板测试的条件判断公式、语法,包括命令、比较函数,以及更新操作的各种关键字,如Keep、Zero等。并通过穿透效果的例子展示了模板测试的实际应用......
  • 通过sysbench工具实现MySQL数据库的性能测试
    1.背景 sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。sysbench支持的测试有CPU运算性能测试、内存分配及传输速度测试、磁盘IO性能测试、POSIX线程性能测试、互斥性测试测试、数据库性能测试(OLTP基准测试)。目前支持的数据库主要是My......