性能测试是什么?双十一大促前的压测攻略

软件验收 0 阅读 A+ 默认 A-

作者:李辉 · 验收专家  |  审核:内容审核(软测实验室)

双十一大促对电商、零售、支付、物流和会员平台都是一次高并发考验。活动开始后,用户会在短时间内集中进入会场、领取优惠券、搜索商品、加入购物车、提交订单和支付。任何一个核心环节变慢,都可能影响下单转化、客户体验和品牌信任。

性能测试是通过模拟真实用户访问、业务操作和系统负载,验证软件在不同压力下是否稳定、是否满足业务性能要求的一项测试活动。它关注的不只是“系统能不能打开”,还要确认系统在流量增长时,响应是否及时、错误是否可控、资源是否充足、服务是否会出现异常。

对于双十一项目,性能测试应在功能测试完成、业务规则基本稳定后开展。企业需要把压测作为上线前的重要验证工作,而不是临近活动才进行一次简单的并发访问。

性能测试_软件性能测试

性能测试解决什么问题

功能测试确认“业务是否做对”,性能测试确认“业务在大量用户同时使用时是否仍能正常运行”。

例如,一个用户领取优惠券、提交订单、完成支付都没有问题,不代表十万名用户同时执行这些操作时系统依然可用。高峰场景下,数据库连接可能耗尽,缓存可能失效,消息队列可能堆积,第三方支付接口也可能出现等待或超时。

性能测试通常帮助企业回答以下问题:

  • 当前系统可以承受多少并发用户和交易量;

  • 页面、接口和交易链路的响应时间是否符合业务要求;

  • 大促峰值到来时,服务器、数据库、缓存和网络是否存在瓶颈;

  • 系统在长时间高负载下是否会发生内存泄漏、连接泄漏或服务降级;

  • 限流、熔断、降级、扩容和故障恢复方案是否真实有效;

  • 订单、库存、优惠券、支付等关键数据在压力下是否保持一致。

GB/T 25000.51-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE) 第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则》将性能效率列为软件质量的重要内容。性能效率包括时间特性、资源利用性和容量。企业在双十一压测中,应围绕这些质量目标设定可验证的指标,而不是仅凭页面感觉判断系统性能。

国家标准_GBT25000_国家标准

性能测试中的核心指标

并发用户数不等于访问量

并发用户数是指同一时间段内,正在对系统执行操作的用户数量。它不等于网站日访问量,也不等于活动报名人数。

例如,某平台预计双十一当天有一百万访问用户,但真正集中在十分钟内领券、抢购或下单的用户可能只有五万。性能测试需要根据用户行为路径、停留时间、操作频率和峰值比例,估算实际并发规模。

常见业务链路可以拆分为:

  • 用户登录和会员校验;

  • 首页、活动会场和商品详情浏览;

  • 搜索、筛选和推荐内容加载;

  • 优惠券领取、核销和库存扣减;

  • 加入购物车、提交订单和锁定库存;

  • 支付、支付结果回调和订单状态更新;

  • 物流查询、售后申请和客服入口访问。

不同链路的并发比例不同。活动会场和商品详情通常流量较大,提交订单和支付的并发量可能较低,但对数据准确性、响应时间和失败率要求更严格。

响应时间决定用户是否愿意等待

响应时间是指用户发起请求到收到系统结果所经过的时间。它可以按平均值、最大值和百分位数统计。

在大促压测中,不能只看平均响应时间。少量请求很快、部分请求等待很久时,平均值可能看起来正常,但真实用户已经感受到卡顿。更常用的指标是 P90、P95 和 P99 响应时间。

P95 响应时间表示 95%的请求在该时间内完成,剩余 5%的请求更慢。对于下单、支付、优惠券领取等核心交易接口,企业应重点关注 P95 和 P99,避免高峰期间出现大量超时请求。

业务目标应按场景制定。例如,商品详情页可接受相对较长的加载时间,订单提交和支付结果确认则需要更严格的响应要求。具体阈值要结合行业、用户网络环境、系统架构和业务承诺确定。

吞吐量反映系统处理能力

吞吐量通常用 TPS 或 QPS 表示。

TPS 是每秒完成的交易数量,适合统计下单、支付、退款等有明确业务结果的操作。QPS 是每秒处理的请求数量,更适合接口、查询和页面访问场景。

双十一压测不能只看服务器 CPU 使用率。一个系统即使 CPU 不高,也可能受数据库锁等待、缓存击穿、线程池满载、网络延迟或第三方接口慢响应影响。吞吐量需要和响应时间、错误率一起分析。

当并发持续增加时,如果 TPS 不再提升,响应时间却持续变长,通常说明系统已经接近容量上限。此时应定位瓶颈,而不是继续无节制加压。

错误率和资源利用率同样关键

错误率是失败请求占总请求的比例,常见错误包括 HTTP 5xx、接口超时、业务校验失败、库存扣减失败和支付回调异常。

压测报告应区分技术错误与业务错误。技术错误可能来自网关、应用服务、数据库或网络。业务错误可能来自库存不足、优惠券已领完、风控拦截或活动规则限制。两类问题的处理方式不同,不能简单合并统计。

资源利用率包括 CPU、内存、磁盘 I/O、网络带宽、数据库连接数、线程池使用率、缓存命中率和消息积压量。GB/T 25000.51-2016强调资源利用性,企业需要确认系统在目标负载下能够合理使用资源,并保留必要的扩容空间。

性能测试_软件性能测试_第三方软件测试

双十一压测前要准备什么

性能测试不是单纯运行脚本。测试结果是否可信,取决于环境、数据、监控和业务模型是否接近真实情况。

压测环境应尽量与生产环境保持一致,包括应用版本、服务器规格、数据库配置、缓存策略、网关规则和中间件参数。若无法使用完整生产规模环境,应明确环境差异,并在容量评估时保留调整系数。

测试数据也需要提前准备。订单、商品、库存、会员、优惠券和地址数据应覆盖真实业务规则。使用固定测试账号和重复订单数据,可能无法发现库存锁定、数据库热点和数据增长带来的问题。

监控体系应在压测前接入。业务侧需要查看下单成功率、支付成功率、库存扣减结果和优惠券发放量;技术侧需要查看应用日志、链路追踪、数据库慢 SQL、缓存命中率、消息队列堆积和主机资源变化。没有监控的压测,只能看到结果,难以找到原因。

双十一大促前的压测时间安排

活动前六至八周:完成容量评估和场景设计

项目团队应根据往年峰值、营销计划、渠道投放、会员规模和活动规则,估算本次大促的访问量、并发用户数和订单峰值。

这个阶段需要确认关键业务链路,并与产品、研发、运维、业务运营共同确定压测目标。测试目标应写清楚目标并发、目标 TPS、响应时间阈值、允许错误率、压测持续时间和降级预案。

对于新增秒杀、直播间、预售、满减叠券或积分兑换功能,应单独建立压测场景。新功能往往会改变用户访问路径,也可能增加数据库和缓存压力。

活动前四至六周:开展基准测试和单链路压测

基准测试用于了解系统在正常负载下的响应表现。单链路压测则分别验证登录、商品查询、领券、加购、下单、支付等接口的承载能力。

这个阶段适合发现基础问题,如慢 SQL、索引缺失、接口重复查询、缓存穿透、对象创建过多和连接池配置不合理。问题修复后要进行回归压测,确认优化确实生效。

单链路结果不能直接代表大促能力。真实活动中,用户会同时浏览、查询、领券和下单,因此后续仍要进行混合场景测试。

活动前三至四周:执行全链路混合压测

全链路压测应按真实用户比例组合业务操作。例如,较多用户浏览会场和商品,部分用户搜索商品,部分用户领取优惠券,少量用户完成下单和支付。

压测流量应逐步提高,观察每个阶段的响应时间、吞吐量、错误率和资源使用情况。压测过程中需要验证库存扣减是否正确、订单是否重复创建、优惠券是否重复核销、支付回调是否丢失。

这一阶段还应模拟热点商品、热点优惠券和热点用户。双十一的风险通常集中在少数爆款商品和关键活动入口,平均流量模型无法覆盖这些压力点。

活动前一至两周:进行峰值和稳定性验证

峰值压测用于验证系统是否能承受预计峰值,并预留一定安全余量。稳定性测试则需要在目标压力下持续运行数小时,观察内存、连接数、消息积压和错误率是否随时间增长。

企业还应验证限流、熔断、降级和扩容机制。例如,推荐服务异常时是否能返回基础商品列表;非核心查询是否可以延迟;支付服务变慢时是否能避免订单服务被拖慢;扩容后新实例是否能正常接入流量。

压测期间发现的问题要分级处理。影响下单、支付、库存和数据一致性的问题应在上线前关闭。对短期无法完全解决的问题,应形成明确的流量控制、监控告警和人工处置方案。

活动前两至三天:做上线前验证

上线前验证不需要重复进行大规模压测,但需要确认版本、配置、监控、告警和应急开关没有偏差。重点检查限流阈值、缓存预热、数据库连接池、消息队列容量、域名解析、CDN 配置和第三方服务配额。

大促当天应安排研发、测试、运维和业务人员值守,按既定指标观察核心链路。性能测试报告、压测脚本、监控看板和故障预案应由相关负责人确认,保证问题出现时能够快速定位和处理。

如何判断压测结果是否可上线

一份可用于上线决策的性能测试报告,应包含测试环境说明、业务场景说明、负载模型、测试数据范围、核心指标、资源监控数据、问题清单和优化结果。

报告不能只写“测试通过”。更有价值的表达是:在某个并发用户规模、某种业务比例和持续时间下,订单提交接口的 P95 响应时间是多少,成功率是多少,数据库与缓存资源使用情况如何,系统的容量边界在哪里。

对于公司客户而言,性能测试的目标不是追求单一的高并发数字,而是在双十一大促期间让关键业务保持可用、可观测、可恢复。只有把性能指标与真实业务场景结合,压测才能成为上线决策的依据。

相关文章