JMeter中Pacing Time与Iteration Time计算方法咨询
基于给定参数:Vusers=10、测试时长=1小时(3600秒)、TPH(每小时总事务数)=250、每次迭代包含事务数=6,计算步骤如下:
1. 计算Iteration Time(迭代时间)
迭代时间指单个用户完成一次完整迭代(包含6个事务)所需的时间,我们先推导满足TPH目标的目标迭代节奏:
步骤1:计算1小时内总迭代次数
总迭代次数 = 总事务数 ÷ 每次迭代事务数 = 250 ÷ 6 ≈ 41.67次步骤2:计算单个用户1小时内需完成的迭代次数
单用户迭代次数 = 总迭代次数 ÷ 用户数 = 41.67 ÷ 10 ≈ 4.17次步骤3:计算目标迭代时间
目标迭代时间 = 测试总时长 ÷ 单用户迭代次数 = 3600秒 ÷ 4.17 ≈ 864秒
注:这里的目标迭代时间是指两次迭代的间隔(包含迭代本身的执行时间),实际运行中需尽量让迭代执行时间接近该值,若执行时间更短,就需要通过Pacing补全间隔。
2. 计算Pacing Time(Pacing时间)
Pacing是两次迭代之间的等待时间,用于精准控制迭代节奏,确保达到目标TPH。核心公式为:Pacing Time = 目标迭代间隔时间 - 实际迭代执行时间
结合参数来看,目标迭代间隔时间即上面算出的864秒。假设实际运行中,单个用户完成一次迭代的执行时间为X秒(可通过前置小压测得到平均执行时间),则:Pacing Time = 864 - X
如果暂时没有实际执行时间数据,可先将864秒作为Pacing初始值,运行后根据实际TPH调整:若TPH低于250,适当减小Pacing值;若TPH高于250,则增大Pacing值。
内容的提问来源于stack exchange,提问作者Bhaskara Reddy Dwarampudi

