JMeter使用bzm并发线程组模拟指定吞吐量的异常问题咨询
问题1:无可用空闲线程报错原因
- 核心原因是你对
${__tstFeedback()}函数的第四个参数理解错误:该参数不是预留的空闲线程数量,是线程富余系数,用于计算所需线程数时预留缓冲,取值一般为1~3之间的小数。你配置为30,意味着函数会要求当前空闲线程数达到当前所需业务线程数的30倍,远高于你设置的100、200最大线程数阈值,因此即使仅启动了39个线程,也会一直提示无可用空闲线程。 - 次要诱因可排查两个点:一是
__tstFeedback()的第一个参数是否和你实际使用的Throughput Shaping Timer元件名称完全一致,名称拼写错误会导致函数无法正确获取吞吐量配置,计算线程数逻辑异常;二是单接口平均响应时间是否过长,已启动的线程全部卡在等待响应返回,没有空闲线程发起新请求达到目标吞吐量。
问题2:Scenario 3、4对应的Transaction Controller未执行的诱因
- 优先排查Transaction Controller本身或其上级节点的配置:是否单独设置了禁用状态,是否绑定了If Controller、Runtime Controller等逻辑控制器,且运行时判定条件不满足、执行时长耗尽导致被跳过。
- 其次检查吞吐量调度配置:Throughput Shaping Timer的时间调度是否覆盖了Scenario 3、4的执行时段,是否存在测试整体运行时长小于两个场景的触发时间的情况。
- 最后排查请求前置依赖:两个事务下的接口是否需要提取前置请求的参数、依赖登录态,前置步骤执行失败会导致后续请求直接跳过,不会触发事务计数。
内容的提问来源于stack exchange,提问作者Sweety
相关产品推荐
相关产品推荐

