首页 > 其他分享 >什么是性能测试,一篇文章告诉你!

什么是性能测试,一篇文章告诉你!

时间:2024-07-01 17:54:48浏览次数:16  
标签:一篇 响应 性能 系统 并发 测试 文章 用户数

简介

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。

为什么要进行性能测试

通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。

  1. 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题。通过检测性能瓶颈,可以找到影响系统性能的原因,并针对性地进行优化和调整。
  2. 评估系统能力:性能测试可以提供有关系统在不同负载条件下的性能数据,包括响应时间、吞吐量和资源利用率等指标。这些数据可以帮助开发人员、运维人员和决策者评估系统的能力,确定系统的性能边界,并制定相应的策略和决策。
  3. 优化系统性能:通过性能测试,可以发现系统存在的性能问题,并优化系统的性能。通过调整配置、优化代码和使用合适的技术方案,可以提高系统的性能,提供更好的用户体验。
  4. 检验系统可靠性:性能测试不仅可以评估系统的性能,还可以测试系统在长时间运行、高负载和异常条件下的稳定性和可靠性。通过模拟实际使用场景,可以检验系统是否能够处理意外情况和异常情况,并找出潜在的问题。

综上所述,进行性能测试有助于发现系统性能瓶颈,评估系统能力,优化系统性能,检验系统可靠性,并提供良好的用户体验。这些优点可以帮助保障系统的稳定性和性能,并满足用户和客户的需求。

性能测试的应用场景

在开展性能测试之前,需要有一个明确的业务场景。比如如下场景:

  1. 双十一、618 即将到来,超过 x 千万的用户会同时下单。
  2. 微博明星公开恋情。
  3. 12306 抢票。

以上的场景都有一个共同特点,是在某个瞬间,来自用户的请求信息达到了远远超出平日正常使用的峰值。

当然了,除了以上的场景,日常的性能测试,也需要拉通业务,产品,确定产品的用户量,根据这些信息制定合理的用户数、并发数、响应时间等等。

如果是完全新上线的产品,在第一次发布的时候,会主要参考竞品的数据指标,制定性能测试计划。

性能测试的价值

性能测试的价值除了上述保证产品上线之后能正常使用之外,还有一个非常重要的因素,就是降本增效。

因为服务器的价格是非常昂贵的。在能满足需求的情况下,能少买一台服务器,都是在替老板省钱。

性能省钱公式:良好的容量规划能⼒ + 性能调优能⼒ = 为老板省钱

学习性能测试的价值体现

性能测试能力是测开工程师精华加分项。

性能测试知识体系

性能测试知识体系主要分为四大模块:

性能调优是整个性能测试过程中最难的一个环节,除了要掌握以上的知识之外,还需要具备非常强的代码基础以及非常丰富的项目经验。所以基本上能做调优的测试,都是在资深专家以上的级别。

性能测试压力曲线模型

这张图是一张非常经典的和测试相关的图片,叫做性能压⼒曲线图。

曲线图关键点介绍:

  • 横轴:并发的用户数,从左到右表现了 Number of Concurrent Users(并发用户数)的不断增长。
  • 纵轴:分别有三条曲线
    • Utilization(资源的利用情况,包括硬件资源和软件资源)
    • Throughput(吞吐量,这里是指每秒事务数)
    • Response Time(响应时间)
  • 区域:曲线图主要分为 3 个区域,分别是:
    • Light Load (轻压力区)
    • Heavy Load (重压力区)
    • Buckle Zone(弃忍区)

纵轴的三条曲线,每条曲线都是在性能测试过程中重点关注的信息:

  • 利用率曲线(绿色):并发用户数-资源利用情况曲线
  • 吞吐量曲线(紫色):并发用户数-吞吐量曲线
  • 平均响应时间(蓝色):并发用户数-响应时间曲线

而在随着用户数不停增大,很明显的可以看到图中有两个拐点:

  • 第一个拐点:The Optimum Number of Concurrent Users(最佳并发用户数),在 Light Load 和 Heavy Load 两个区域交界处的并发用户数。代表最优并发用户数:既不会造成资源的浪费,也可以满足现有的需求
  • 第一个拐点到第二个拐点之间:The Maximum Number of Concurrent Users(最大并发用户数),在 Heavy Load 和 Buckle Zone 两个区域交界处的并发用户数
    • 平均响应时间会越来越高,而平均响应时间会直接影响到用户的使用体验。
    • 吞吐量和利用率曲线相较平稳。
  • 第二个拐点:代表系统能承载的最大的并发用户数。一旦超过这个并发,代表服务器需要进行扩容。

过程分析:

  • 阶段 1 轻压力区:随着并发用户数的增长,资源使用率和吞吐量(TPS)会相应的增长,但是响应时间(RT)基本平稳,小幅递增;
  • 阶段 2 重压力区:当并发用户数增长到一定值后,资源利用趋于饱和,吞吐量(TPS)增长明显放缓甚至停止增长,而响应时间(RT)却进一步增大。
  • 阶段 3 弃忍区:如果并发用户数继续增长,软硬件资源占用继续维持在饱和状态(过饱和),但是吞吐量(TPS)开始下降,响应时间(RT)急剧递增。

综上所述,当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大并发用户数之间时,系统可以继续工作,但是用户的等待时间延长,满意度开始降低,并且如果负载一直持续,将最终会导致有些用户无法忍受而放弃;当系统负载大于最大并发用户数时,将注定会导致某些用户无法忍受超长的响应时间而放弃。

所以性能测试的数据尽量保持在 CPU 利用率足够高,整个系统的吞吐负载可控。

总结

  • 什么是性能测试
  • 为什么要进行性能测试
  • 性能测试压力曲线模型

标签:一篇,响应,性能,系统,并发,测试,文章,用户数
From: https://www.cnblogs.com/hogwarts/p/18278546

相关文章

  • 不只是前端,后端、产品和测试也需要了解的浏览器知识
    一、我们为什么要了解浏览器?1.对于前端开发者1.浏览器是用户体验的第一线。我们需要了解浏览器的工作原理,才能有效地设计和实现用户界面,确保良好的用户体验。2.好的产品需要考虑浏览器兼容性。我们需要了解这些差异,以确保网站或应用在不同的浏览器中都能正常工作,因为不同的浏......
  • DI DO IO模块 测试备忘
    DI  DO IO模块 测试备忘DI  DO IO模块 测试备忘电压:12v还是24v接近开关:买常开,还是常闭。串口线:公接2、3、5母接3、2、5端口。下面就是没板时候采集是true,有板时候是false。板就是一个东西,有板就是有东西放到接近开关   erwa.cn二娃备忘 ......
  • AB测试】支付宝营销策略效果分析ipynb
    参考地址:【AB测试】支付宝营销策略效果分析.ipynb 【A/B测试】支付宝营销策略效果分析Programmer:Dan.QDate:2020.06.25A/B测试常用于比较不同设计、运营方案的优劣,以辅助决策。本分析以支付宝营销活动为例,通过广告点击率指标比较两组营销策略的广告投放效果......
  • html+css+js文章模板
    图片  源代码在图片后面,点赞加关注,谢谢......
  • 项目随笔-【大事件(文章类)】
    项目随笔-【大事件(文章类)】自定义参数校验注解需要写一个自定义注解Xxx+校验规则的类XxxValidation【需要继承ConstraintValidator】自定义注解@Documented@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy={StateValidation.clas......
  • 全新升级!中央集中式架构功能测试为新车型保驾护航
        “软件定义汽车”新时代下,整车电气电气架构向中央-区域集中式发展已成为行业共识,车型架构的变革带来更复杂的整车功能定义、更多的新技术的应用(如SOA服务化、智能配电等)和更短的车型研发周期,对整车和新产品研发的质量验证提出更高的要求。    作为国内较早开......
  • 文字游侠:AI模型一键生成爆款文章,让你效率提高20倍!附渠道和小白教程!
    自去年起,人工智能(AI)的话题热度急剧上升,各种AI工具如雨后春笋般涌现,为我们的日常生活和工作带来了极大的便利。近期,小编发现了一款名为“文字游侠”的AI文章生成工具,它极大地提高了自媒体文章创作的效率,甚至可达20倍之多。【工具模型简介】:“文字游侠”头条神器,是一款集全自......
  • BigCodeBench: 继 HumanEval 之后的新一代代码生成测试基准
    HumanEval是一个用于评估大型语言模型(LLM)在代码生成任务中的参考基准,因为它使得对紧凑的函数级代码片段的评估变得容易。然而,关于其在评估LLM编程能力方面的有效性越来越多的担忧,主要问题是HumanEval中的任务太简单,可能不能代表真实世界的编程任务。相比于HumanEval中的......
  • 使用GCOV和LCOV测试C++代码覆盖率
    使用GCOV和LCOV测试C++代码覆盖率目录使用GCOV和LCOV测试C++代码覆盖率1.GCOV和LCOV简介2.GCOV和LCOV安装3.GCOV+LCOV测试代码覆盖率1.GCOV和LCOV简介GCOV是一个测试代码覆盖率的工具,可以与GCC一起使用来分析程序,以帮助创建更高效、更快的运行代码,并发现程序的未测试部分。......
  • 基础班测试试题(33题)
    基础班测试满分:100分姓名:                                   班级:                                   学号:1.单选题 (3.0分)   下列选项中,能作为python程序变量名的是()   A. ......