性能测试概述

性能测试概述

一、常见的性能问题表现

下面通过一些具体例子来展示

image-20240609133815765

上述是一些平台崩溃的信息。大部分原因则都是 网络,服务器等出现的问题;而这些问题都是属于性能问题的范畴。这就需要我们在软件发布前,做好性能测试了。

二、性能测试是什么

性能测试是一种用于评估和测量系统在特定负载条件下的表现和行为的方法。其目的是确保系统在实际使用环境中能够满足预期的性能要求。

用一句话来概括:

测试人员借助 测试工具,模拟系统在不同的场景下,对应的 性能指标 是否达到预期。

三、性能测试和功能测试之间的区别

功能测试:人工来完成。性能测试:借助工具完成。

功能测试:在一些创建的场景下,只要能够运行就OK。性能测试:在一些极端的情况,需要保障软件能够正常工作。

【注】性能测试是在功能测试完成之后执行的。

四、为什么要进行性能测试

主要是为了确保系统在各种使用条件下能够稳定、高效地运行。以下是一些主要的原因:

  • 获取系统性能的指标,作为性能指标的基准
  • 验证系统的性能指标是否达到要求(性能需求)
    • 应用程序是否能够满足系统要求的各中性能指标
    • 应用程序是否能处理预期的用户负载并有盈余能力
    • 应用程序是否能处理业务所需要的事务数量
    • 在预期和非预期的用户负载下,应用程序是否稳定
    • 是否能确保用户在真正使用软件时获得舒服的体验
  • 发现系统的性能瓶颈,内存泄漏等问题。 系统正常工作的情况下的最大容量。
  • 帮助系统运维部门能更好的规划硬件配置

五、常见的性能指标及性能测试工具专用术语

下列内容都是先给出一些比较官方的回答,对于一些会有口语化解释

并发数 (Concurrency)
  • 定义:在同一时间内同时发出请求或操作的用户或线程数。
  • 用途:衡量系统在高并发情况下的处理能力,评估系统是否能在多个用户同时访问时保持稳定和高效。

并发的条件:大量用户/线程,同时操作

用户数 (Users)
  • 定义:在性能测试中模拟的虚拟用户数量。
  • 用途:评估系统在不同用户负载下的表现,确保系统能支持预期的用户数量。

用户数可以分为三类:

  • 系统用户数:数据库中保存的用户数量
  • 在线用户数:登录成功后的用户数量
  • 并发用户数:当系统达到并发的时候,用户的数量即为并发用户数
响应时间/平均响应时间 (RT/ART)
  • 响应时间 (Response Time, RT):从用户发出请求到系统返回结果的时间间隔。
  • 平均响应时间 (Average Response Time, ART):所有请求的响应时间的平均值。
  • 用途:衡量系统处理单个请求的效率,响应时间越短,用户体验越好。

下面看一个用户发送信息到接收到结果的图,用这个图来讲解:

image-20240609223732356

  • 用户响应时间:N1+A1+N2+A2+N3+A3+N4,即用户从发起请求到用户看到响应中间经历的这段时间
  • 请求响应时间:A1+N2+A2+N3+A3,即服务器收到请求到发出响应这段时间
事务响应时间 (Transaction Response Time)
  • 定义:一个事务(由一系列操作组成)从开始到结束所需的时间。
  • 用途:评估复杂操作或业务流程的执行效率,确保关键业务流程的性能符合要求。

这里的事务,是指 用户操作的时候,最小的一个不可分割的操作

比如:在购物软件上支付的时候,输入密码点击确定,支付成功。输入支付密码后到显示支付成功,虽然我们看起来是连贯的,但是这中间会有 发送支付请求–支付系统响应等 类似的请求。

我们就把这样一个支付过程,从输入密码到现实支付成功,可以理解为一个 事务。

事务响应时间就是: 事务从请求开始,到事务响应成功花费的时间

每秒事务通过数 (Transactions Per Second, TPS)
  • 定义:TPS 是指每秒系统能够处理的事务数。
  • 用途:是衡量系统的处理能力的重要指标,特别是高负载条件下的性能表现。

当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈了。如果环 境没有发生大的变化,对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改 变。

栗子:

比如一个地铁检票机:
只有10台进站检票的机器,1台机器1秒能进1个人 
并发用户数为5,则TPS为5 并发用户数为10,则TPS为10 
并发用户数为100,则TPS仍为10

如果每秒事务通过数越大,代表系统处理的能力越高,越强

点击率 (Click Rate)
  • 定义:用户点击操作的频率,通常用于Web应用测试。
  • 用途:评估用户操作频繁度对系统性能的影响,确保系统能在高点击率情况下正常运行。

更具体的讲,点击率就是 每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。

【注】这里的点击并不是鼠标的一次点击,一次点击可能有多次HTTP请求。

吞吐量 (Throughput)
  • 定义:单位时间内系统处理的总请求数量,通常以每秒请求数(RPS)或每秒事务数(TPS)表示。
  • 用途:衡量系统在高负载下的处理能力,确定系统能在多大负载下保持高效运行。

吞吐量也就是 用户每次请求和服务器之间的数据交互

eg:百度上点击某个东西时:

image-20240609230010919

吞吐率 (Data Throughput Rate)
  • 定义:单位时间内系统处理的有效数据量,通常以字节/秒(Bps)或千字节/秒(KBps)计算。
  • 用途:评估网络带宽和数据处理能力,确保系统能处理大数据量的传输需求。

吞吐率 = 吞吐量/请求处理时间

思考时间 (Think Time)
  • 定义:指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作 时,每个请求之间的间隔时间。
  • 用途:使测试场景更接近实际用户行为,评估系统在实际使用中的表现,确保测试结果的现实性和准确性。
资源利用率 (Resource Utilization)
  • 定义:系统各类资源(如CPU、内存、磁盘、网络)的使用情况。
  • 用途:识别资源瓶颈,评估系统在不同负载下的资源消耗,确保资源分配合理,避免过度使用或浪费。

image-20240609230227630

性能测试分类

基准性能测试 (Benchmark Testing)
  • 定义:在标准和固定环境下进行的测试,以获取系统的基准性能数据。
  • 用途:为其他测试提供参考点,用于对比和评估系统性能,确保在不同条件下性能的一致性。

基准性能测试:让系统在正常情况下运行,观察各种性能指标。

应用场景:软件性能摸底。

负载性能测试 (Load Testing)
  • 定义:评估系统在不同负载条件下的表现,逐步增加负载直到达到预期目标。
  • 用途:识别系统的性能瓶颈,确保系统能在实际负载下正常运行,满足预期性能需求。

负载性能测试:让系统背负一定的压力,观察性能指标是否出现转折点

压力测试 (Stress Testing)
  • 定义:测试系统在超过预期最大负载情况下的表现,评估其稳定性和恢复能力。
  • 用途:发现系统的极限,验证在异常条件下的稳定性和应对能力,确保系统在高压力下的可靠性。

压力测试:让系统处于饱和状态,观察系统性能指标

压力测试往往会把系统搞崩溃

image-20240609234204333

可靠性测试 (Reliability Testing)
  • 定义:长时间持续运行系统,观察其在长时间负载下的性能和资源消耗。
  • 用途:确保系统在长时间运行后依然稳定可靠,识别内存泄漏、资源耗尽等潜在问题,确保系统的持久稳定性。

可靠性测试:验证系统在一段时间内持续运行,观察各项性能指标是否正常

eg:

让系统在一周内持续运行,看系统是否有异常

让系统在一个月内持续运行,看系统是否有异常

让系统在一年持续运行,看系统是否有异常

常用性能测试工具

  1. LoadRunner

    • 特点:支持多种协议和大规模测试场景,提供详细的性能分析和报告。
    • 应用:适用于复杂、大规模的性能测试,企业级应用的常用工具。
  2. JMeter

    • 特点:开源、免费,广泛用于Web应用测试,支持多种协议和插件扩展。
    • 应用:适用于各种类型的性能测试,特别是Web服务和API的测试。
  3. Gatling

    • 特点:高性能、高并发,基于Scala编写,脚本编写灵活强大。
    • 应用:适用于需要高并发性能测试的场景,如Web应用和REST API。
  4. Apache Bench (ab)

    • 特点:简单易用,主要用于HTTP服务器性能测试。
    • 应用:适用于快速、简单的Web服务器负载测试。
  5. BlazeMeter

    • 特点:基于云的性能测试工具,兼容JMeter脚本,支持大规模分布式测试。
    • 应用:适用于大规模、高并发的性能测试,云环境下的测试需求。

下篇文章,咱们来介绍一下 LoadRunner 的使用

**:简单易用,主要用于HTTP服务器性能测试。

  • 应用:适用于快速、简单的Web服务器负载测试。
  1. BlazeMeter
    • 特点:基于云的性能测试工具,兼容JMeter脚本,支持大规模分布式测试。
    • 应用:适用于大规模、高并发的性能测试,云环境下的测试需求。

下篇文章,咱们来介绍一下 LoadRunner 的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如果Null没有null

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值