性能测试概述

目录

常见的性能问题

为什么要进行性能测试

常见的性能指标

概念和术语介绍

并发用户数

响应时间/平均响应时间(RT/ART)

事务响应时间(Transaction Reponse Time)

每秒事务通过数(Transaction Per Second)

点击率(Hit Per Second)

吞吐量(Throughput)

思考时间(Think Time)

资源利用率

性能测试方法介绍

代码级别的性能测试

基准性能测试

并发测试(Load Testing)

压力测试(StressTesting)

配置测试(ConfigurationTesting)

可靠性测试(Reliability Testing)


常见的性能问题

  1. 资源泄漏,包括内存泄漏。
  2. CPU使用率达到100%,系统被锁定等。
  3. 线程死锁,阻塞等造成系统越来越慢。
  4. 查询速度慢,或者列表的效率低。
  5. 受外部系统影响越来越大

为什么要进行性能测试

  1. 获取系统性能的指标,验证系统的性能指标是否达到要求(性能需求)
  2. 发现系统的性能瓶颈,内存泄漏等问题。
  3. 系统正常工作的情况下的最大容量。
  4. 帮助系统运维部门能更好的规划硬件配置

常见的性能指标

  1. 系统/事务的平均响应时间
  2. 事务处理效率TPS(Transaction Per Second)
  3. 吞吐率
  4. 每秒点击次数(Hits Per Second)
  5. 服务器资源占用情况,内存和CPU使用率
  6. 软、硬件配置是否合适(容量规划/硬件选型)

概念和术语介绍

        性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势。性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题分析并解决;找出系统性能变化趋势,为后续的扩展做准备。

        一般地,它主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。性能指标里包括系统各个方面的能力,如系统并发处理能力,系统响应时间,批量业务处理能力等等。

并发用户数

        并发用户会对系统造成压力,首先对系统用户数,在线用户数,并发用户数做一个区分。

        系统用户数:简单地说就是该系统的注册用户数。例如,BestTest论坛里存在6666个注册用户,他们可以是活跃的,也可以是僵尸的。

        业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。

        后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量。

响应时间/平均响应时间(RT/ART)

        从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间。

        所以,响应时间分为前端展示时间和系统响应时间两部分。

        前端展示时间指的是客户端收到服务器返回的数据后渲染前端页面,所耗费的时间。

        系统的响应时间,分为web服务器,应用服务器,数据库服务器,等各种服务器之间通信和处理请求的时间。

事务响应时间(Transaction Reponse Time)

        每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标

        这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作, 后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事 务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。

每秒事务通过数(Transaction Per Second)

        TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标

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

点击率(Hit Per Second)

        每秒点击数代表用户每秒向Web 服务器提交的 HTTP 请求数。点击率越大,服务器压力越大。 这里的点击并不是鼠标的一次点击,一次点击可能有多次 HTTP 请求。

吞吐量(Throughput)

        这里的吞吐量以单位时间为度量衡量; 单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力,一般来说用 Requests/second,Pages/Second,Bytes/Second,从业务的角度,也可以用访问人数/天或是处理的 业务数/小时来衡量,从网络设置的的角度来说,也可以用字节数/天来衡量。

思考时间(Think Time)

        指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。

资源利用率

        不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。

性能测试方法介绍

代码级别的性能测试

        代码级别的性能测试是指在单元测试阶段就对代码的时间性能和空间性能进行必要的测试和评估,以防止底层代码的效率问题在项目后期才发现的尴尬。

基准性能测试

        系统的第一个版本,研发团队团队也不清楚系统的性能能达到怎样的水平,这时进行的性能测试,

        其目标是获得系统标准配置下,有关的性能指标数据,作为将来性能改善的基准,这种测试称之为“性能基准测试。 性能基准测试是通过性能测试获取系统的性能指标,建立一个性能基准,作为以后性能测试的参考。 系统进行性能基准测试可以在系统开发的较早的阶段发现性能问题。

并发测试(Load Testing)

        并发测试,指的是在同一时间内,同时调用后端服务,期间观察被调用服务在并发情况下的行为表现, 目的是为了发现如资源竞争,死锁等问题。 这里的并发测试指的是严格的并发测试,也就是所有用户在同一时刻向后端服务器发送请求。

压力测试(StressTesting)

        压力测试,通常指的是后端压力测试,一般采用后端性能测试的方法,不断对系统施加压力,验证系统长期处于临界饱和阶段的稳定性以及性能指标的变化。试图找到系统处于临界状态时的主要瓶颈点。要更快的找出系统的性能瓶颈,一般会加大负载,甚至将负载一直增加上去,达到极限负载。这时候内存等处于极限状态,测试系统在极限状态下长时间运行是否稳定。确定系统是否稳定的指标包括TPS, RT,CPU Using,Mem Using等。

        在不断地加压过程中,一旦系统出现拐点(从量变到质变),系统可能就会出现崩溃,揭露高负载下系统的问题,例如资源竞争、同步问题、内存泄漏等;然后逐渐较少压力,观察瘫痪的系统是否可以自愈。

配置测试(ConfigurationTesting)

        系统性能的好坏,不仅仅取决于软件自身的设计和实现,也取决于软件运行所依赖的硬件,网络环境。 为了达到系统性能指标要求,就需要调整系统的硬件配置,如增加服务器或者服务器集群来达到更高的性能。

        这时,会在不同配置的情况下,来测定系统的性能指标,从而决定在系统部署时采用什么样的软,硬件配置。

可靠性测试(Reliability Testing)

        验证系统在常规负载模式下长期运行的稳定性。 在一定的软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是否运行稳定。与压力测试不同的是系统的负载并不是处于极限的状态下。重点是满足性能要求的情况下,系统的稳定性,比如响应时间,TPS是否稳定。

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小林想被监督学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值