| 题源类型 | 未标注 |
| 年份/批次 | |
| 适用项目 | 某互联网公司线上商品交易与运营平台 |
| 主题概念 | 性能测试是通过自动化测试工具模拟正常、峰值和异常负载条件,对系统各项性能指标进行测试的活动,主要用于评价系统在不同负载下的响应能力和资源消耗情况 |
| 常见方法 | 响应时间、吞吐量、并发连接数、资源利用率和错误率等,常见的 Web 系统性能评测方法包括基准性能测试、负载测试、压力测试和可靠性测试等 |
| 已选论文点 | 基准性能测试 / 压力测试 / 可靠性测试 |
| 项目位置/技术/需求 | 在上线前的性能基线建立阶段,我们采用基准性能测试来评价系统在正常业务压力下的响应时间和吞吐量 |
| 解决的问题 | 如果只凭开发环境中的单接口响应结果判断性能,难以反映真实业务场景下网关、服务、缓存和数据库之间的综合压力 |
| 解决的方法 | 为解决这一问题,我组织项目组使用 JMeter 设计典型业务测试模型,将商品浏览、活动查询、下单支付和订单查询等操作按接近生产的比例组合起来 |
| 具体的实现 | 具体执行时,测试请求统一经过 Spring Cloud Gateway 进入系统,业务处理过程中重点观察 Redis 缓存命中、MySQL 查询响应、RocketMQ 消息处理和应用实例资源使用情况 |
| 例子 | 以活动开始后的用户下单场景为例,测试脚本会模拟用户进入活动页、查看商品详情并提交订单 |
| 效果 | 通过基准性能测试,我们掌握了核心链路在正常负载下的响应时间和吞吐量,也发现商品详情查询和订单状态查询是较容易形成压力的环节 |
| 项目位置/技术/需求 | 在核心链路优化阶段,我们采用压力测试来定位系统极限和主要性能瓶颈 |
| 解决的问题 | 基准性能测试通过并不代表系统在突发流量下没有风险,如果活动推广效果超过预期,系统中的薄弱环节就会放大成整体响应变慢 |
| 解决的方法 | 为解决这一问题,项目组在接近生产的测试环境中逐步提高并发用户数和请求频率,持续记录接口响应时间、吞吐量、错误率、CPU 使用率、数据库连接数、慢 SQL、缓存命中率和消息队列堆积情况,并通过 SkyWalking 辅助定位调用耗时 |
| 具体的实现 | 测试过程中,我们发现热门商品查询在高并发下容易穿透到数据库,订单提交环节也会受到库存校验和幂等处理的影响 针对这些问题,项目组将热点商品信息和活动库存写入 Redis,减少高频查询对 MySQL 的压力;对订单提交入口增加限流和重复提交控制 |
| 例子 | 以用户集中参与限时活动为例,当响应时间开始明显上升时,项目组能够根据监控数据判断瓶颈主要出现在查询、缓存还是应用实例资源上 |
| 效果 | 经过多轮测试和调整,核心交易链路在峰值场景下的响应能力明显改善 |
| 项目位置/技术/需求 | 在上线前验证和上线后观察阶段,我们采用可靠性测试来评价系统较长时间运行时的性能稳定性和故障隐患 |
| 解决的问题 | 如果只关注短时并发结果,可能无法发现连接未及时释放、消息消费延迟和定时任务堆积等问题 |
| 解决的方法 | 为解决这一问题,我们在预生产环境中连续运行核心业务场景,让测试脚本按照正常业务节奏持续产生浏览、下单、支付、取消订单和后台查询等操作,同时观察应用实例、MySQL、Redis、RocketMQ 和定时任务的资源曲线 |
| 具体的实现 | 为解决这一问题,我们在预生产环境中连续运行核心业务场景,让测试脚本按照正常业务节奏持续产生浏览、下单、支付、取消订单和后台查询等操作,同时观察应用实例、MySQL、Redis、RocketMQ 和定时任务的资源曲线 |
| 例子 | 以未支付订单超时关闭为例,系统会定期扫描待处理订单并释放占用库存,可靠性测试关注该流程是否按时完成,以及任务运行期间是否造成连接升高或消息积压 |
| 效果 | 通过可靠性测试和持续观察,项目组及时处理了少量异常任务和慢查询问题,为平台平稳运行提供了依据 |