JMeter的行为在这里根本没有意义。我项目的最小化版本如下所示:
线程组
- 外部预处理器
- 外网请求
- 回路控制器
..-内置预处理器
..-内部网络请求
Thread组上的线程和循环计数为1,循环控制器上的循环计数为6,我希望Outer PreProcessor运行一次而Inner PreProcessor运行6次(在每种情况下,相同的数量为相关网络请求运行的时间。)
相反,外部运行7次,内部运行6次(由控制台日志记录确定)。对项目结构没有任何意义,那些额外的PreProcessor运行似乎搞乱了我的变量。
为什么JMeter会以这种方式做事,你如何让它停下来?
答案 0 :(得分:3)
在您的特定用例中,您需要JMeter PreProcessor作为采样器的子,而不是线程组或测试计划。尝试使用此约定或将代码移动到Sampler或使用JMeter函数。
答案 1 :(得分:3)
JMeter预处理器正在关注Scoping Rules,即将对位于同一级别(或更低级别)的所有采样器执行预处理器。
因此:
Outer PreProcessor
预处理器将针对Outer web request
和Inner web request
Inner PreProcessor
将针对Inner web request
(以及同一级别的所有请求)运行解决方案是将Outer PreProcessor
移动为Outer web request
的孩子。