对于性能测试的类型及划分,业界有很多标准,然而每个类型都有不同版本的解释,且都有一些差别
从狭义来看,性能测试主要用于描述常规的性能测试,指通过模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产性能的要求。
从广义来看,性能测试是压力测试、负载测试、强度测试、容量测试、大数据量测试、基准测试等和性能相关的测试的统称
性能测试的种类繁多,但实际执行时确实容易将多种混合操作,所以,我们仅理解对应的测试是什么即可
一、性能测试分类
性能测试类型主要有以下几种,记住概念即可,在实际应用场景中,可以根据具体情况组合使用
压力测试
压力测试可以理解为,未设定预期目标,不断加压,看系统什么时候达到奔溃,以此确定系统在当前环境配置情况下的最大并发压力数
压力测试的目的是找到资源不足或资源竞争导致的错误,以及确定测试系统能够处理最大的并发能力
负载测试
负载测试是在给定环境的情况下,逐步增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态,从而确定系统在不同负载的情况下性能处理能力以及系统能够承受的最大负载
负载测试目的是验证业务或系统在给定的负载条件下的处理性能。目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行
强度测试
强度测试注重的是系统的极限或者系统异常情况下的测试
fu
容量测试
字面意思理解,容量测试则是确定测试系统可以同时在线的最大用户数,一旦当用户数超过此临界点,系统将会将会加重卡、慢响应等情况
容量测试的目的是通过测试预先分析出系统应用特征极限值(如最大并发用户数、数据库最大连接数等),且系统在其极限状态下没有出现任何软件故障或仍能保持主要功能正常运行
大数据量测试
设定不同数据模型,根据系统的响应情况,针对性构建数据进行大量级测试,例如
-
对于系统造成卡顿、响应慢的数据模型;
-
单独访问数据库,数据库响应慢且出现慢查的数据模型等;
并发测试
并发测试的目的,是通过模拟多用户按照使用习惯,对某个业务功能或场景进行高并发访问,发现潜在的问题或风险。例如内存泄漏、线程锁、数据库缓存击穿等问题
基准测试
模拟定量的用户运行一种或多种业务,将测试结果作为基线数据。在系统调优或系统评测的过程中,通过运行相同的业务场景比较测试结果,来确定调优的结果是否达到预期效果
基准测试的主要意义:主要用于性能调优。在经过测试获得了基准测试数据后,进行环境调整(包括硬件配置、网络、操作系统、应用服务器、数据库等),再将测试结果与基准数据进行对比,判断调整是否达到最佳状态。
稳定性测试
稳定性测试从字面来看,强调在于稳定,不强调压力有多大,但是一定要稳定运行,不能出现宕机、业务不可用等情况
通常稳定性测试场景,均是业务最佳并发量级打8折或按照其他比例混合执行,执行 7*24 小时稳定性
需要注意的是,一般稳定性测试需要在系统稳定无严重阻塞业务的bug存在及场景设计模拟实际用户使用为佳
配置测试
在固定压测量级情况下,通过对测试环境配置的调整,以使得业务系统达到最佳运行状态,以及资源分配达到最优
混合场景测试
通过对业务及用户使用场景分析,构造业务混合模型,模拟不同用户同时操作多个业务的情况,最大限度还原真实场景。
例如,1000用户模拟测试,其中10%用来模拟支付操作,30%用来模拟登录,40%用作浏览商品,20%用作打开购物车,使用户均匀合理的分散到各个场景中