性能测试相关概念

张开发
2026/4/8 15:50:30 15 分钟阅读

分享文章

性能测试相关概念
一、性能测试概念为了发现系统性能问题或获取系统性能相关指标而进行的测试。对软件来说常见的性能问题查询数据时间过长网速过慢服务器无响应查询数据很长时间才显示结果......二、性能测试常见指标1、并发量并发量即并发用户数。从业务层面看并发用户数指的是实际使用系统的用户总数。从后端服务器看指的是wed服务器在一段时间内处理浏览器请求而建立的http连接数或胜场的处理线程数。例一个已经投入使用的web系统最多时有500人同时使用这些用户进行的操作分别是浏览页面、查询订单、提交订单的操作。那么这个系统的业务并发用户数就是500而实际并发用户数是进行提交订单和查询订单操作的用户数量。2、响应时间响应时间指的是应用系统从请求出发开始到客户端收到最后一个字节数据所消耗的总时间。对于web系统来说响应时间分为两部分一是前端展现时间二是系统响应时间前端展现时间页面渲染时间系统响应时间包含服务器、数据库、通讯网络等的响应时间3、吞吐量吞吐量指的是单位时间内处理的并发数能够直接体现软件系统负载承受能力。吞吐量越高系统性能越好。吞吐量 并发数 / 响应时间例有A、B两个场景A场景有100个用户每个用户隔1秒发送一个请求B场景有1000个用户每个用户隔10秒发送一个请求。A和B场景的吞吐量相同A100/1 100 个/秒B1000/10 100 个/秒。但是A场景的思考时间短处理时间短所以A场景占用的系统资源更多。吞吐量的分类1、按请求数量分TPS和QPSTPS每秒处理事务数用于衡量系统在一定时间内处理的事务数量事务一个接口可以是一个事务多个接口也可以是一个事务一个流程也可以是一个事务。事务代表一个完整的功能。TPS的计算公式处理成功的总事务数 / 总的用时例1某系统5分钟成功处理了3000个事务TPS 3000 / (5*60) 10例22025年最高的一天有15万笔交易预测2026年TPS需要多少才能合格认为每笔交易就是一个事务理论上来说TPS 150000 / (24*60*60) 1.74理想状态。然而实际上订单量并不是平均在一天的每个时间段的而是在某个时间段突然增加的因此1没有详细的数据时按照二八定理20%的时间内处理80%的事务TPS 150000 * 0.8/24*60*60 * 0.2 6.942有详细的数据这15万笔交易有10万笔是在早上八点到九点半进行的TPS 100000 / 1.5*60*60 18.52参考以往业务的增加假设每年比上一年的 业务数量增加20%则TPS 100000 100000 * 0.2/ 1.5*60*60 22.22QPS每秒查询数当一个接口就是一个事务的时候且都是查询接口时QPS TPS。2、按照网络数据包分KB4、资源利用率通过查看系统占用的情况分析资源瓶颈服务器占用的资源通常包括网络、内存、磁盘、CPU5、并发数、响应时间、吞吐量的关系当并发用户较少时系统的吞吐量较低系统的响应时间较短。这个时候我们认为系统处于空闲区间图中[0,Ax]。随着并发用户的增加系统吞吐量开始呈线性增长系统性能进入线性增长区间图中[Ax,Cx]。吞吐量在某个点达到饱和点也称为拐点。在这以后用户请求不再被立即处理响应时间变长吞吐量开始降低系统性能进入饱和区间图中Cx以后。系统性能的拐点通常时性能测试的主要目的。三、性能测试分类1、基准测试基准测试又称单用户测试。主要用于监测被测系统在较低压力下的运行状况并记录相关数据。当性能测试环境确定以后通常选取业务中最重要的部分进行基准测试对被测系统施加一定压力从而获取被测系统在单用户运行情况下的各项性能指标为多用户并发测试和混合场景测试提供参考依据。2、并发测试并发测试用于评估被测系统的某些特定操作同时发生时的性能表现侧重同时性。例如被测系统被多个用户同时登录时的响应能力或系统的某一功能被多个用户同时操作时的性能表现。通过并发测试不仅可以获得被测系统在多用户并发操作时的性能指标还可以发现被测系统在并发条件下可能发生的问题如内存泄漏、线程锁、资源争夺等问题。例如通过模拟多个用户同时访问一条数据或模拟多个用户同时更新数据可能会发现被测系统的数据库访问错误、写入错误等。几乎多有的性能测试都会涉及到并发测试。但并发测试对并发时间要求比较苛刻通常需要借助专门的性能测试工具采用多线程或多进程的方式来模拟多个用户的同时操作。3、负载测试负载测试是性能测试的一种测试类型用于评估被测系统在预期的不同负载下的行为。负载测试关注系统处理不同负载的能力这些负载可以通过控制并发用户数或者进程数来实现。进行负载测试时通过对系统不断增加并发访问负载监测系统性能的变化直到系统的某项或多项性能达到安全临界值最终确定在满足该安全临界值的性能指标下系统所能承受的最大负载量。简而言之负载测试就是通过逐步增加负载的方式来确定系统的处理能力。通过负载测试可以获取系统能够达到的峰值指标。例一个系统要求响应时间不能超过2秒在并发用户数为10000时系统的响应时间为2秒。但是在并发用户数超过10000时系统的响应时间超过2秒。所以对这个系统来说它的最大负载就是10000。负载测试可以用于系统的性能验证、性能诊断和性能调优等场景。4、压力测试压力测试用于评估被测系统在高于预期、高于指定容量负载需求或低于最少需求资源的条件下的行为。压力测试关注被测系统处理超出预期或特定峰值负载的能力也可以用于评估系统在资源匮乏时的处理能力。例如在可用的计算能力、带宽和内存资源不足的条件下系统的表现。进行压力测试时通常采用逐步增加系统负载的方式使系统某些资源达到饱和甚至失效从而发现那些只有在高负载条件下才会出现的缺陷如同步问题内存泄漏等。通过对被测系统进行压力测试也能找出被测系统的性能拐点获得系统所能提供的最大服务级别系统能承受的最大压力评估系统在峰值负载或超出最大负载情况下的处理能力。压力测试主要用于性能诊断、性能调优和容量规划等场景。5、稳定性测试在负载测试的基础上执行较长时间的测试用来检测系统的稳定性。通常较长时间指的是3*24小时以上。6、压力测试与负载测试的区别压力测试与负载测试不同。负载测试是保持性能指标要求的前提下测试系统的最大承受负载能力而压力测试是在测试系统性能能够达到极限状态的负载能力。例如软件系统要求的响应时间是2秒。进行负载测试发现当访问量超过1万时系统的响应时间超过2秒那么在满足系统响应时间的前提下该系统能够承受的最大负载就是1万。进行压力测试时可以在1万的基础上继续增加访问量并观察系统性能的变化。加入当系统的访问量达到2万时系统的响应时间为5秒但是系统仍旧可以正常运行当访问量达到3万时系统崩溃无法正常运行。由此就可以确定系统能够承受的极限是3万访问量。简单来说负载测试就是要找到在一定的前提下系统性能的峰值而压力测试则是要找到使系统崩溃的临界值也就是系统性能的极限。

更多文章