首页/开发/软件测试速查/性能门禁(CI)

性能门禁(CI)

性能门禁:在流水线里跑冒烟级压测(核心接口固定曲线),把分位与错误率阈值作为合并条件;全量压测留在发布前或按周期执行,避免流水线拥堵。

软件测试速查开发更新于 2026-10-13

性能 CI 门禁是什么

性能 CI 门禁指在持续集成流水线中固化一组小而稳定的性能检查:核心接口在固定负载下跑一遍,与基线比较,超过阈值就让构建失败。它拦住的是渐进式退化——单次改动只慢几个百分点,肉眼与人工压测都察觉不到,但累积几个版本就变成线上事故。门禁要有判据、有基线、有人跟,否则只是流水线里多跑一段脚本。

基本信息

检查范围核心接口的响应时间与错误率,控制在分钟级完成
判据形式阈值断言:如 p95 小于五百毫秒、错误率为零
基线管理记录当前版本基线值,对比相对退化而非绝对值
环境要求固定环境与数据量级,避免噪声导致误报
防抖策略多轮取中位数、预热后再测、剔除首次冷启动
失败处置构建红灯后需有人确认与豁免流程,不能默默重跑略过

典型使用场景

  • 日常提交:核心接口冒烟压测随每次构建执行,拦截明显退化。
  • 依赖升级:框架或中间件版本升级后,对照基线验证性能影响。
  • 定期全量:夜间跑更完整的性能套件,早上看趋势报告。
  • 发布前检查:候选版本与上一版本同环境对比,出具发布依据。
  • 回归守护:配合 thresholds,让性能目标成为回归的一部分。

门禁设计与取舍

设计点要防的问题做法
时长控制流水线变慢被嫌弃只跑核心接口的短压测
环境隔离噪声导致随机失败专属环境或资源锁定
判据合理过严误报、过松无效相对基线加容差百分比
趋势可见只看单次失败保存历史曲线,看退化趋势
门禁的价值来自公信力:误报一次没人管,反复误报就会被整体绕过,宁少而准。
指标放对位置:CI 里看相对退化,容量与极限结论放到定期专项压测里做。
别拿共享环境跑门禁:邻居的压测流量会污染结果,失败原因永远说不清。

易错点

  • 阈值拍脑袋:过严天天红灯被无视,过松永远绿灯没有价值。
  • 只在共享环境跑:噪声波动造成随机失败,团队逐渐不信任结果。
  • 失败无跟进机制:告警发进群里无人认领,问题拖到线上爆发。
  • 压测时长失控:门禁跑半小时,流水线排队,改回手动执行。
  • 只测单接口:真实链路里的组合退化被漏掉,需要补关键链路场景。

数据来源与参考

  • k6 官方文档(CI 集成与阈值)
  • Google SRE Workbook(发布与验证实践)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌