4

在一个Simple Controller我放了一个JDBC PreProcessor和一个If Controller的目的是为了If Controller应该使用预处理器的结果。由于元素的优先级,控制器在 PreProcessor 之前解释并且无法评估异常值。

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

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

谢谢!

4

1 回答 1

7

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

在我的例子中,我首先使用了 PreProcessor,然后是带有子 Sampler 的 Conroller。在这种情况下,预处理器没有在适当的时间进行评估,因为控制器之前没有采样器:

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

解决方案

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

1. PreProcessor
2. Sampler (can use the PreProcessor's result)
3. Controller (can use the PreProcessor's result)
于 2012-11-15T13:59:23.583 回答