首页/开发/软件测试速查/RPS 与并发口径

RPS 与并发口径

RPS(每秒请求数)与并发是两种口径:闭环(固定并发)下 RPS 随响应时间变化,开环(固定到达率)才能精确控制负载强度;选哪种取决于要回答的问题。

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

RPS 与并发口径是什么

RPS(每秒请求数)与并发是两种负载口径:闭环(固定并发)下 RPS 随响应时间变化,开环(固定到达率)才能精确控制负载强度;选哪种取决于要回答的问题。用并发数横向对比不同系统的吞吐、或把闭环变慢误读为「扛住了」,都是常见误判。

基本信息

换算关系平均并发 = 到达率 × 平均响应时间(利特尔法则)
闭环模型固定并发:响应变慢时发起速率自动下降
开环模型固定到达率:精确控制压力强度
工具对应k6 的执行器两种模型均可选;JMeter 线程组属闭环
选型建议验证 SLO 与容量偏开环,观察资源与排队可闭环

换算关系(利特尔法则)

换算关系(利特尔法则)
# 平均并发 = 到达率 RPS x 平均响应时间(秒)
# 示例:200 RPS x 0.1s = 20 并发
# 注意:只对稳定状态成立,加压与卸载阶段会失真

两种模型对照

模型控制变量适用问题注意
闭环并发数资源占用与排队行为变慢会降低到达率
开环到达率SLO 与容量验证防重试放大实际压力

典型使用场景

  • 容量测试:用开环推算「每分钟多少订单」的承受上限。
  • SLO 验证:按承诺到达率加压,看分位是否达标。
  • 资源画像:闭环下观察固定并发时的资源与排队。
  • 方案对比:统一换算到 RPS 口径后横向比较。
  • 脚本准备:开环模式配置数据池,避免重试掩盖问题。
  • 报告说明:标注模型与口径,读者才不会误读。
k6 的执行器区分 open model(如 ramping-arrival-rate)与 closed model(如 constant-vus),JMeter 线程组属于闭环模型。
利特尔法则只对稳定状态成立:加压与卸载阶段用瞬时并发换算 RPS 会失真。
闭环模型下系统变慢会自动降低发起速率,曲线看起来「稳住了」,实际是压力没打到位。

易错点

  • 用并发口径横向对比不同系统吞吐,忽略响应时间差异
  • 闭环模型下系统变慢自动降速,被误读为「扛住了」
  • 开环加压叠加客户端重试,实际负载高于设定值
  • 换算时用峰值 RPS 与平均响应时间混算,数字没有意义
  • 报告未标注模型与口径,评审各拿各的数字争论
  • 把瞬时峰值当作可持续到达率使用

数据来源与参考

  • k6 官方文档:Open and closed models(k6.io/docs)
  • JMeter 官方文档:Thread Groups(jmeter.apache.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌