【性能测试系列一】性能测试分类

一、前提

系统的性能测试是一个广义的概念,它是一个范畴,不可以去量化衡量。我们可以通过某种类型的性能测试,去衡量一个功能的性能指标

注意不是所有的系统、模块、功能都需要进行性能测试;根据数据量、用户量、并发访问的概率来确认性能测试,一般占所有功能的10%,如果超出这个范围,很可能有冗余的性能测试

二、根据不同的测试目的划分

1、必选类型:

分类含义基本理解举例
基准测试系统基本的性能指标系统在没有压力的其情况下,需要满足的基本要求在没有负重的情况下,一个用户跑100米需要花多少时间、速度是多少?(这边,没有负重是基准)
压力测试(强度测试)给系统增加请求压力断增加系统负荷,增加用户量或者请求数量,查看系统的最大承受力在50公斤、100公斤……等情况下,用户跑100米能否跑完?
负载测试不同请求量下运行一段时间的表现在一定的工作负荷下,长时间连续运行系统,看系统的表现在一阵强风的情况下,用户在负重或没有负重的情况下,跑50,100米需要花多少时间?
容量测试最优容量确定系统可处理同时在线的最大用户数,强调的是多少,而不是多快这个用户能跑多远就跑不动了?

2、可选类型:

分类含义基本理解举例
稳定性测试在一定压力下,长时间运行的情况强调一种稳定的指标,指标数据无波动用户在指定风量、指定载重(及压力和强度)下,跑10米速度是否稳定,能否匀速跑完?
配置测试
验收性能测试

3、容量测试与负载测试区别:
通常和数据库有关,容量和负载的区别在于:容量关注的是大容量,而不需要表现实际的使用。

4、负载测试和压力测试区别:
负载测试是测试软件本身最大所能承受的性能测试,探寻一种最大负载,及不同负载下的表现
压力测试就是一种破坏性的性能测试,强调极端的破坏性,查看系统的最大承受能力

三、不同类型测试详解

3.1 基准测试
基准测试指的是模拟单个用户执行业务场景时,考察系统的性能指标。严格意义上来讲,基准测试并不能算作性能测试范畴,它跟功能测试并没有太大区别。差异在于,基准测试的目的更多地是关注业务功能的正确性,或者说验证测试脚本的正确性,然后,将基准测试时采集得到的系统性能指标,作为基准测试结果,为后续并发压力测试的性能分析提供参考依据。

3.2 负载测试
负载测试主要指的是模拟系统在正常负载压力场景下,考察系统的性能指标。这里说的正常负载,主要是指用户对系统能承受的最大业务负载量的期望值,即预计系统最大应该支持多大用户的并发量。通过负载测试,目的是验证系统是否能满足预期的业务压力场景。
通常负载测试是最典型的性能测试类型,通过实施负载测试来获取性能拐点,也叫最佳性能点,当达到这个点的时候,系统能力、极限能力是多少?也常用来做线上流量评估。

3.3 压力测试
通俗地讲,压力测试是为了发现在多大并发压力下系统的性能会变得不可接受,或者出现性能拐点(崩溃)的情况。在加压策略上,压力测试会对被测系统逐步加压,在加压的过程中考察系统性能指标的走势情况,最终找出系统在出现性能拐点时的并发用户数,也就是系统支持的最大并发用户数。

开展压力测试主要用于探测应用或者应用的支撑基础设施某些部分的极限能力。通过一直增加负载,直到应用的部分功能不能正常工作,目的是找到被测系统的容量天花板。

3.4 疲劳强度测试
疲劳强度测试的加压策略跟负载测试也很接近,都是对系统模拟出系统能承受的最大业务负载量,差异在于,疲劳强度测试更关注系统在长时间运行情况下系统性能指标的变化情况,例如,系统在运行一段时间后,是否会出现事务处理失败、响应时间增长、业务吞吐量降低、CPU/内存资源增长等问题。

3.5 稳定性测试
稳定性测试会把用户真实会发生的场景放大3-5倍,然后在线上运行24小时,在这个阶段会发现很多稳定性问题,例如:list回收,java list回收,一旦回收出现问题,可能会出现内存溢出,这个在日常测试过程中,是很难测出来的,所以用稳定性测试查出这些问题。

3.6 容量测试
当我们业务越来越复杂的时候,比如一场大促,应该怎么评估线上的性能?如何去做合理的扩容?这个时候就需要开展相应的容量测试了。

通过对比可以发现,不同的性能测试类型,其本质的差异还是在加压策略上,而采用何种加压策略,就取决于我们实际的测试目的,即期望通过性能测试发现什么问题。明白了这一点,性能测试类型的差异也就不再容易混淆了。性能测试手段的重点在于加压的方式和策略

四、性能测试例:搜索功能

那如何对搜索功能进行性能测试呢?

答案:
N个人同时进行功能性操作的同时,在确保功能实现正确的前提下,考察服务端应用程序的各项性能指标,以及服务器硬件资源的使用情况。

当然,这个答案比较简单粗暴,但是它仍然包含了性能测试的基本特点:

①以功能实现正确为前提
②通常有一定的并发用户
③重点考察服务器端在一定并发压力下的性能指标

最后,再明确下性能测试的目的。通常,对服务器端应用程序开展性能测试,是为了验证软件系统是否能够达到预期的性能指标,同时发现软件系统中存在的性能瓶颈,从而实现优化系统的目的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值