ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

性能测试概念与工具(1)

2026/9/28 11:40:00 拓冰建站 浏览量
性能测试概念与工具(1) 前言在软件开发过程中功能是否可用往往是最先被关注的问题但随着用户规模的增长系统在高并发场景下的表现同样值得重视。本文围绕性能测试的核心概念、常用工具以及自动化测试环境搭建三个方面结合具体操作步骤和代码示例梳理从理论到实践的完整路径。下文详解《工具》一、性能测试基础知识1.1 概念1区别功能测试和性能测试同属系统测试阶段但二者关注的角度有所不同。以汽车为例五菱和法拉利都具备四个轮子、方向盘和挡风玻璃从功能角度看都能满足载人出行的需求然而从性能角度看百公里加速时间等方面存在明显差异。对于软件系统而言能完成业务操作是一回事操作过程是否流畅、响应是否及时则是另一回事。2定义性能测试是为了发现系统性能问题或获取系统性能相关指标而进行的测试。一般在真实环境、特定负载条件下通过工具模拟实际软件系统的运行及其操作同时监控各项性能指标最后对测试结果进行分析以确定系统的性能情况。1.2 常见性能问题以购物软件为例用户在使用过程中可能遇到以下情况购物过程中页面突然无法打开刷新后可以重新打开双十一期间无法进入商品页面页面加载时间过长消耗用户大量等待时间。这些现象背后往往对应着查询数据时间过长、网速较慢、服务器无响应等性能问题。常见性能问题分类二、核心指标评估系统性能的好坏需要借助一系列可量化的指标进行统计和分析。以下介绍几个常用的性能测试指标。2.1 并发数并发数即并发用户数。业务层面指实际使用系统的用户总数后端服务器层面指Web服务器在一段时间内处理浏览器请求而建立的HTTP连接数或生成的处理线程数。举例一个已投入运行的Web系统有5000名员工使用最多同时有2500人在线用户分别进行浏览页面、填写订单、提交订单、等操作。该系统的业务并发用户数为2500而实际并发用户数则是同时进行提交订单和查询订单操作的用户。2.2 吞吐量吞吐量指单位时间内处理的并发数直接体现软件系统的负载承受能力。吞吐量越高系统承受的并发越多性能通常越好。假设有A、B两种场景A场景有100个并发用户每个用户每隔1秒发出一个请求B场景有1000个并发用户每个用户每隔10秒发送一个请求。两种场景的吞吐量相同均为每秒100个请求但A场景思考时间较短占用的系统资源相对更多。1TPSTPS即每秒处理事务数用于衡量系统在一定时间内能够处理的事务数。计算公式总的请求成功的事务数除以总的运行时间。2QPSQPS即每秒查询率。若一个事务中只有一个接口且该接口为查询接口则QPS与TPS相等。此外吞吐量还可按照网络数据包划分为KB等单位。2.3 响应时间响应时间用于验证系统处理速度的快慢指应用系统从请求发出开始到客户端接收到最后一个字节数据所消耗的时间。对于Web系统而言系统响应时间包含前端展现时间和系统响应时间两部分前端展现时间即页面渲染时间系统响应时间则包含服务器、数据库、通讯网络等环节的响应时间。2.4 资源利用率资源利用率通过查看系统资源占用情况来分析资源瓶颈主要关注服务器的CPU、内存、磁盘和网络等指标。2.5 关系与拐点并发用户数、系统吞吐量和系统响应时间三者之间存在密切关联。当并发用户较少时系统吞吐量较低响应时间较短系统处于空闲区间随着并发用户增加吞吐量呈线性增长系统进入线性增长区间当吞吐量在某个点达到饱和即拐点后用户请求不再被立即处理响应时间随之变长吞吐量逐渐降低系统进入过饱和区间。系统性能的拐点通常是性能测试的主要关注目标。并发用户、吞吐量与响应时间关系图性能拐点示意性能区间划分三、多视角分析从客户端发起请求到客户端收到响应的整个过程中各阶段都可能存在性能问题。不同角色看待性能测试的侧重点有所不同了解这些差异有助于性能测试工作的开展。3.1 终端用户对于终端用户而言性能问题表现为进行业务操作时的主观响应时间。用户重点关注从提交请求到收到响应的时间包括系统响应时间和前端展现时间。3.2 系统运维系统运维人员除了关注单个请求的响应时间更关注大量用户并发访问时对系统的影响以及更大负载情况下的系统健康状态。例如当存在两种方案时A方案支持100万并发访问用户登录响应时间3秒B方案支持500万并发访问用户登录响应时间8秒。这种情况下运维人员往往更倾向于第二种方案因为它能服务更多用户。3.3 软件开发软件设计开发人员关注算法设计、架构设计、性能最佳实践、数据库相关优化以及软件性能的可测试性等方面。对于算法需保证高效且无内存泄漏对于架构需保证系统容量和性能可扩展。3.4 测试人员性能测试人员的工作重点在于性能测试场景的设计、脚本的开发和执行以及性能缺陷的排查和定位。性能测试角色关注点后端性能问题排查方向四、分类4.1 基准测试基准测试又称单用户测试主要用于监测被测系统在较低压力下的运行状况并记录相关数据。当性能测试环境确定后通常选取业务模型中的重要业务做基准测试对被测系统施加一定压力从而获取单用户运行情况下的各项性能指标为多用户并发测试和混合场景测试提供参考依据。4.2 并发测试并发测试用于评估被测系统的某些特定操作同时发生时的性能表现通过并发测试不仅可以获得多用户并发操作时的性能指标还可以发现并发条件下可能发生的问题如内存泄漏、资源争用等。并发测试对并发时间要求较为苛刻通常需借助专门的性能测试工具采用多线程或多进程的方式模拟多个虚拟用户的并发性操作。4.3 负载测试负载测试用于评估被测系统在预期的不同负载下的行为关注系统处理不同负载的能力。负载测试类似于举重运动通过不断增加重量来确定运动员在身体状况保持正常的情况下所能举起的最大重量。例如一个软件系统的响应时间要求不超过2秒在这个前提下不断增加用户访问量假设当访问量超过1万人时系统响应时间超过2秒则可以确定在响应时间不超过2秒的前提下系统的最大负载量为1万人。4.4 压力测试压力测试用于评估被测系统在高于预期、高于指定容量负载需求或低于最少需求资源条件下的行为关注系统处理超出预期或特定峰值负载的能力也可用于评估系统在资源匮乏时的处理能力。压力测试与负载测试的区别负载测试是在保持性能指标要求的前提下测试系统能够承受的最大负载而压力测试则是测试系统性能达到极限的状态。继续以上述系统为例负载测试确定最大访问量为1万进行压力测试时可继续增加访问量当访问量增加到2万时响应时间延迟到5秒增加到3万时系统崩溃无法响应由此可确定系统的极限访问量约为3万。4.5 稳定性测试稳定性测试在负载测试的基础上执行较长时间的测试以检查系统的稳定性通常较长时间指3乘以24小时以上。