自定义Arrivals Thread Group与Free-Form Arrivals Thread Group到达率计算方法
自定义Arrivals Thread Group与Free-Form Arrivals Thread Group的总到达率计算方式
我来给你详细拆解这两个JMeter线程组的总到达用户数(也就是你提到的图表显示数值)计算逻辑,结合你给出的配置实例逐一说明:
一、Arrivals Thread Group的计算逻辑
Arrivals Thread Group是通过分阶段控制到达率来生成负载的,核心配置项的含义和计算步骤如下:
配置项含义
Target rate:目标到达率,单位是用户/分钟Ramp-up:从0爬升至目标到达率所需的时间,单位是分钟Ramp-up step count:爬升阶段的步数,把整个爬升时间分成N个相等的时间段,每个时间段内到达率保持稳定并逐步提升Hold the target time:维持目标到达率的时间,单位是分钟
结合你的配置计算
你的配置:Target rate=120、Ramp-up=1、Ramp-up step count=2、Hold the target time=2
拆分爬升阶段:
爬升时间1分钟被分成2步,每步持续0.5分钟:- 第1步(前0.5分钟):到达率从0提升至60(120/2),总用户数=60 × 0.5 = 30
- 第2步(后0.5分钟):到达率从60提升至120,总用户数=120 × 0.5 = 60
- 爬升阶段总用户数:30 + 60 = 90
保持阶段计算:
以目标率120用户/分钟持续2分钟,总用户数=120 × 2 = 240总到达用户数:
总时长=1分钟(爬升)+2分钟(保持)=3分钟
总到达用户数=90 + 240 = 330,这就是你图表显示的约330的来源
二、Free-Form Arrivals Thread Group的计算逻辑
Free-Form Arrivals Thread Group的到达率是线性平滑变化的,从初始值到结束值在指定时长内完成过渡,总到达用户数用梯形面积公式计算(因为到达率是线性变化的,相当于求梯形的面积)。
配置项含义
Start Value:初始到达率,单位是用户/秒End Value:结束时的到达率,单位是用户/秒Duration:到达率从初始值过渡到结束值的总时长,单位是秒
结合你的配置计算
你的配置:Start Value=20、End Value=0、Duration=60
代入梯形面积公式:
总到达用户数 = (初始到达率 + 结束到达率) / 2 × 持续时间
计算过程:
总到达用户数 = (20 + 0)/2 × 60 = 10 × 60 = 600,这和你图表显示的约600完全匹配
另外补充:这个线程组的瞬时到达率是随时间线性下降的,比如第30秒时的瞬时到达率是10用户/秒,第60秒时降到0。
内容的提问来源于stack exchange,提问作者Dipak
相关产品推荐
相关产品推荐

