JMeter bzm并行控制器Limit max thread number属性咨询
bzm Parallel Controller 「Limit max thread number」属性答疑
- 属性核心作用:这个参数是并行执行的线程数硬上限,专门用来控制Parallel Controller跑子任务时,最多同时启动多少个独立线程执行并行请求。如果不手动赋值,控制器默认会给挂在它名下的每一个直接子节点(取样器、下级逻辑控制器都算)单独分配1个线程,所有子节点会被同时启动执行。
- 是否需要设置为浏览器实测的并行请求数:完全不需要严格对齐观测值。你在浏览器里抓到的并行请求数,只是当前测试页面加载时触发的瞬时并发请求规模,仅能做参考:
- 如果测试目标是1:1模拟真实用户的浏览器访问行为,可以参考对应浏览器的同域名默认并行连接限制(比如Chrome同域默认6个连接)设置参数,比单次抓包拿到的零散并行值更贴近真实用户场景;
- 如果测试目标是探测服务端性能上限,可以根据压测目标灵活调整数值,不需要被浏览器抓包的结果限制。
- Azure Pipeline运行场景下不设上限的隐患:
- Azure Pipeline的托管测试代理默认有严格的CPU、内存配额约束,如果Parallel Controller下挂载的子请求数量多,无上限时会瞬间拉起大量线程,很容易触发代理内存溢出、JMeter进程卡死,直接导致测试任务超时失败;
- 无约束的大量线程同时发请求,会快速耗尽测试代理的可用临时端口,导致大量请求报连接错误,压测结果完全失真,没法反映服务端的真实性能;
- 线程数暴涨会快速推高代理的资源占用,很容易触发Pipeline配置的资源阈值告警,导致测试任务被强制中断。
- 插件是否会自动判定最大并行数:不会。这个插件没有内置的自适应判断逻辑,不设置上限时只会执行默认逻辑:有多少个直接子节点,就同时启动多少个线程,既不会根据测试机的资源负载自动缩量,也不会根据服务端的响应情况调整并行规模。
内容的提问来源于stack exchange,提问作者Sachin Patel
相关产品推荐
相关产品推荐

