测试第四课---------性能测试
作者前言
🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言、C++和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂
性能测试
- **作者前言**
- 啥叫性能测试
- 常⻅性能测试指标
- 并发数
- 吞吐量
- TPS
- QPS
- 响应时间
- 资源利⽤率
- 性能测试分类
- 基准测试
- 并发测试
- 负载测试
- 压⼒测试
- 稳定性测试
啥叫性能测试
定义:为了发现系统性能问题或获取系统性能相关指标⽽进⾏的测试
常⻅性能测试指标
并发数
从业务层⾯看,并发⽤⼾数指的是实际使⽤系统的⽤⼾总数。
从后端服务器层⾯看,指的是web服务器在⼀段时间内处理浏览器请求⽽建⽴的http连接数或⽣
成的处理线程数。
吞吐量
单位时间(每秒)内处理的并发数,直接体现软件系统负载承受能⼒。吞吐量越⾼,系统承受的并发越
多,性能越好。
吞吐量分为: TPS 和QPS,
TPS
表示每秒处理的事务数,
计算公式是:处理的事务数/ 处理的时间
QPS
表示每秒的查询率
若⼀个事务中只有⼀个接⼝且是查询接⼝,则QPS = TPS;
响应时间
验证系统处理速度快不快
应⽤系统从请求发出开始,到客⼾端接收到最后⼀个字节数据所消耗的时间。
对于web系统⽽⾔,系统响应时间包含前端展现时间和系统响应时间。
前端展现时间:⻚⾯渲染时间。
系统响应时间:包含服务器、数据库、通讯⽹络等响应时间
并发⽤⼾、系统吞吐量之间的关系
a、b、c点可以看出系统的吞吐量和并发量是增加的,但是到c点以后,并发数增加,但是吞吐量减少,是因为不断增加的并发量给服务器增加了压力,吞吐量表示每秒处理成功的并发数。
吞吐量在某个点上达到了饱和点,也称之为拐点。在这之后⽤⼾请求不再被⽴即处理,响应时间随之
变⻓,吞吐量也逐渐降低,系统性能进⼊了过饱和区间。
系统性能的拐点通常是性能测试的主要⽬的。
资源利⽤率
通过查看系统占⽤的情况分析资源瓶颈。
服务器:CPU、内存、磁盘、⽹络等
性能测试分类
基准测试
基准测试(Benchmark Testing)⼜称单⽤⼾测试,主要⽤于监测被测系统在较低压⼒下的运⾏状
况并记录相关数据。当性能测试环境确定以后,通常选取业务模型中的重要业务做基准测试,对
被测系统施加⼀定压⼒,从⽽获取被测系统在单⽤⼾运⾏情况下的各项性能指标,为多⽤⼾并发
测试和混合场景测试等提供参考依据
并发测试
并发测试(Concurrency Testing)⽤于评估被测系统的某些特定操作同时发⽣时的性能表现,例
如,被测系统被多个⽤⼾同时登录时的响应能⼒,或系统的某⼀功能被多个⽤⼾同时操作时的性
能表现。通过并发测试,不仅可以获得被测系统在多⽤⼾并发操作时的性能指标,还可以发现被
测系统在并发条件下可能发⽣的问题,如内存泄漏、线程锁、资源争⽤问题。例如,通过模拟多
个⽤⼾同时访问某⼀条件数据,或模拟多个⽤⼾同时更新数据,可能会发现被测系统的数据库访
问错误、写⼊错误等。⼏乎所有的性能测试都会涉及⼀些并发测试。但并发测试对并发时间要求
⽐较苛刻,通常需借助专⻔的性能测试⼯具,采⽤多线程或多进程的⽅式来模拟多个虚拟⽤⼾的
并发性操作。
负载测试
负载测试(Load Testing)是性能测试的⼀种测试类型,⽤于评估被测系统在预期的不同负载下的
⾏为。负载测试关注系统处理不同负载的能⼒,这些负载可通过控制并发⽤⼾或者进程的数量来
实现。进⾏负载测试时,通过对系统不断增加并发访问负载,监测系统性能的变化,直到系统的
某项或多项性能指标达到安全临界值,最终确定在满⾜该安全临界值的性能指标下,系统所能承
受的最⼤负载量。简⽽⾔之,负载测试是通过逐步加载的⽅式来确定系统的处理能⼒。负载测试
类似于举重运动,通过不断给运动员增加重量,确定运动员在其⾝体状况保持正常的情况下所能
举起的最⼤重量。通过负载测试可以获取系统能够达到的峰值指标
压⼒测试
压⼒测试(Stress Testing)⽤于评估被测系统在⾼于预期、⾼于指定容量负载需求或低于最少需求
资源的条件下的⾏为。压⼒测试关注被测系统处理超出预期或特定峰值负载的能⼒,也可以⽤于
评估系统在资源匮乏时的处理能⼒,⽐如在可⽤的计算能⼒、带宽和内存资源不⾜的条件下系统
的表现。进⾏压⼒测试时通常采⽤逐步增加系统负载的⽅式,使系统某些资源达到饱和甚⾄失
效,从⽽发现那些只有在⾼负载条件下才会出现的缺陷,如同步问题、内存泄漏等。通过对被测
系统进⾏压⼒测试,也能找出被测系统的性能拐点,获得系统所能提供的最⼤服务级别(系统所
能承受的最⼤压⼒),评估系统在峰值负载或超出最⼤负载情况下的处理能⼒。压⼒测试主要⽤
于性能诊断、性能调优和容量规划等场景。
压⼒测试和负载测试的区别?
压⼒测试与负载测试不同。负载测试是在保持性能指标要求的前提下测试系统能够承受的最⼤负
载,⽽压⼒测试则是测试系统性能达到极限的状态
稳定性测试
在负载测试的基础上,执⾏较⻓时间的测试以检查系统的稳定性。通常较⻓时间指3*24⼩时以
上。