JMeter:如何阻止PreProcessors运行额外的时间

时间:2017-08-23 19:20:22

标签: jmeter

JMeter的行为在这里根本没有意义。我项目的最小化版本如下所示:

线程组
- 外部预处理器
- 外网请求
- 回路控制器
..-内置预处理器
..-内部网络请求

Thread组上的线程和循环计数为1,循环控制器上的循环计数为6,我希望Outer PreProcessor运行一次而Inner PreProcessor运行6次(在每种情况下,相同的数量为相关网络请求运行的时间。)

相反,外部运行7次,内部运行6次(由控制台日志记录确定)。对项目结构没有任何意义,那些额外的PreProcessor运行似乎搞乱了我的变量。

为什么JMeter会以这种方式做事,你如何让它停下来?

2 个答案:

答案 0 :(得分:3)

在您的特定用例中,您需要JMeter PreProcessor作为采样器的,而不是线程组或测试计划。尝试使用此约定或将代码移动到Sampler或使用JMeter函数。

答案 1 :(得分:3)

JMeter预处理器正在关注Scoping Rules,即将对位于同一级别(或更低级别)的所有采样器执行预处理器。

因此:

  • Outer PreProcessor预处理器将针对Outer web requestInner web request
  • 运行
  • Inner PreProcessor将针对Inner web request(以及同一级别的所有请求)运行

解决方案是将Outer PreProcessor移动为Outer web request的孩子。

更多信息:A Quick Guide to JMeter PreProcessors