如果Controller与PreProcessor一起使用

时间:2012-11-14 13:14:14

标签: jmeter

Simple Controller中,为了JDBC PreProcessor的目的,我应该使用If ControllerIf Controller来使用预处理器的结果。由于元素的优先级,控制器在PreProcessor之前解释,无法评估例外值。

如何强制PreProcessor在Controller之前运行?

换句话说,如何根据动态前置条件运行或跳过样本?

谢谢!

1 个答案:

答案 0 :(得分:7)

我找到了原因和解决方案。 PreProcessors属于Samplers。但是(这没有描述)他们只是在采样器之前直接进行评估。评估后,其他采样器和控制器可以使用预处理器的结果。

在我的情况下,我先使用PreProcessor,然后使用带有子Sampler的Conroller。在这种情况下,PreProcessor没有在适当的时间进行评估,因为在Controller之前没有Sampler:

1. PreProcessor
2. Controller (can't use the PreProcessor's result)
  2.1. Sampler

解决方案

如果任何Sampler在Controller之前,则将在Controller之前评估PreProcessor。一个采样器(例如,测试操作,调试采样器或任何“无操作”采样器)必须位于预处理器和控制器之间。在这种情况下,运行顺序是预期的:

1. PreProcessor
2. Sampler (can use the PreProcessor's result)
3. Controller (can use the PreProcessor's result)