JMeter:如何阻止预处理器运行额外的时间
杰米特的行为在这里毫无意义。我的项目的最小化版本如下所示: 线程组JMeter:如何阻止预处理器运行额外的时间,jmeter,Jmeter,杰米特的行为在这里毫无意义。我的项目的最小化版本如下所示: 线程组 -外部预处理器 -外部web请求 -环路控制器 ..-内部预处理器 ..-内部web请求 线程组的线程和循环计数为1,循环控制器的循环计数为6,我希望外部预处理器运行一次,内部预处理器运行6次(在每种情况下,与相关web请求运行的次数相同) 相反,外部运行7次,内部运行6次(由控制台日志记录确定)。这对项目结构没有任何意义,那些额外的预处理器运行似乎把我的变量搞乱了 为什么JMeter会这样做,如何让它停止?在您的特定用例中,您
-外部预处理器
-外部web请求
-环路控制器
..-内部预处理器
..-内部web请求 线程组的线程和循环计数为1,循环控制器的循环计数为6,我希望外部预处理器运行一次,内部预处理器运行6次(在每种情况下,与相关web请求运行的次数相同) 相反,外部运行7次,内部运行6次(由控制台日志记录确定)。这对项目结构没有任何意义,那些额外的预处理器运行似乎把我的变量搞乱了
为什么JMeter会这样做,如何让它停止?在您的特定用例中,您需要JMeter预处理器是采样器的子级,而不是线程组或测试计划下的子级。尝试使用此约定或将代码移动到采样器或使用JMeter函数。JMeter预处理器如下,即将对位于同一级别(或更低级别)的所有采样器执行预处理器 因此:
将为外部预处理器
和外部web请求
内部web请求运行预处理器
将针对内部预处理器
(以及同一级别上的所有请求)运行内部web请求
外部预处理器
移动为外部web请求
的子级
更多信息:Wow。这比我想象的要容易。它现在正在输出我想要的结果。非常感谢您的帮助。虽然您的解决方案对于这种情况是正确的,但一般的说法“预处理器应该是采样器的孩子”是不正确的。在许多情况下,您希望预处理器与sampler处于相同或更高的级别,并且在设计规范范围内。我将您的答案更改为更具体的用例。下面的答案提供了关于范围的更一般的指导。