博主主页: 码农派大星.
数据结构专栏:Java数据结构
数据库专栏:数据库
JavaEE专栏:JavaEE
软件测试专栏:软件测试
关注博主带你了解更多知识
1.性能测试概念
为了发现系统性能问题或获取系统性能相关指标⽽进⾏的测试
评估软件系统在特定的负载和环境下,是否能够满足预定的性能指标
2.常⻅性能测试指标
并发数
并发⽤⼾数
从业务层⾯看,并发⽤⼾数指的是实际使⽤系统的⽤⼾总数
从后端服务器层⾯看,指的是web服务器在⼀段时间内处理浏览器请求⽽建⽴的http连接数或⽣
成的处理线程数
吞吐量
单位时间内处理的并发数,直接体现软件系统负载承受能⼒。吞吐量越⾼,系统承受的并发越
多,性能越好。
TPS和QPS
TPS:每秒处理事务数,⽤于衡量系统在⼀定时间内能够处理的事务数
QPS:每秒查询率
响应时间
应⽤系统从请求发出开始,到客⼾端接收到最后⼀个字节数据所消耗的时间。
对于web系统⽽⾔,系统响应时间包含前端展现时间和系统响应时间。
前端展现时间:⻚⾯渲染时间
系统响应时间:包含服务器、数据库、通讯⽹络等响应时间
资源利⽤率
通过查看系统占⽤的情况分析资源瓶颈。
服务器:CPU、内存、磁盘、⽹络等
3.性能测试分类
基准测试
基准测试(Benchmark Testing)⼜称单⽤⼾测试,主要⽤于监测被测系统在较低压⼒下的运⾏状况并记录相关数据
并发测试
并发测试(Concurrency Testing)⽤于评估被测系统的某些特定操作同时发⽣时的性能表现,例
如,被测系统被多个⽤⼾同时登录时的响应能⼒,或系统的某⼀功能被多个⽤⼾同时操作时的性
能表现。通过并发测试,不仅可以获得被测系统在多⽤⼾并发操作时的性能指标,还可以发现被
测系统在并发条件下可能发⽣的问题,如内存泄漏、线程锁、资源争⽤问题。例如,通过模拟多
个⽤⼾同时访问某⼀条件数据,或模拟多个⽤⼾同时更新数据,可能会发现被测系统的数据库访
问错误、写⼊错误等。⼏乎所有的性能测试都会涉及⼀些并发测试。但并发测试对并发时间要求
⽐较苛刻,通常需借助专⻔的性能测试⼯具,采⽤多线程或多进程的⽅式来模拟多个虚拟⽤⼾的
并发性操作。
负载测试
负载测试是通过逐步加载的⽅式来确定系统的处理能⼒。负载测试
类似于举重运动,通过不断给运动员增加重量,确定运动员在其⾝体状况保持正常的情况下所能
举起的最⼤重量。通过负载测试可以获取系统能够达到的峰值指标
例如,⼀个软件系统的响应时间要求不超过2秒,如果在这个前提下不断增加⽤⼾访问量,系统
的响应时间就会变⻓。假设当访问量超过1万⼈时系统的响应时间超过2秒,那么就可以确定在系
统响应时间不超过2秒的前提下,系统的最⼤负载量是1万⼈。负载测试可⽤于系统的性能验证、
性能诊断和性能调优等场景
压⼒测试
压⼒测试(Stress Testing)⽤于评估被测系统在⾼于预期、⾼于指定容量负载需求或低于最少需求
资源的条件下的⾏为。压⼒测试关注被测系统处理超出预期或特定峰值负载的能⼒,也可以⽤于
评估系统在资源匮乏时的处理能⼒,⽐如在可⽤的计算能⼒、带宽和内存资源不⾜的条件下系统
的表现。进⾏压⼒测试时通常采⽤逐步增加系统负载的⽅式,使系统某些资源达到饱和甚⾄失
效,从⽽发现那些只有在⾼负载条件下才会出现的缺陷,如同步问题、内存泄漏等。通过对被测
系统进⾏压⼒测试,也能找出被测系统的性能拐点,获得系统所能提供的最⼤服务级别(系统所
能承受的最⼤压⼒),评估系统在峰值负载或超出最⼤负载情况下的处理能⼒

稳定性测试
在负载测试的基础上,执⾏较⻓时间的测试以检查系统的稳定性。通常较⻓时间指3*24⼩时以
上。