在简单 Controller
中,我放置了JDBC预处理器
和If Controller
以用于If Controller
> 应该使用预处理器的结果。由于元素的优先级, Controller 在预处理器之前进行解释,并且无法计算异常值。
如何强制预处理器先于 Controller ?
换句话说,我如何根据动态前提条件运行或跳过示例?
谢谢!
最佳答案
我找到了原因和解决方案。预处理器属于采样器。但是(这没有描述)他们仅在采样器之前直接进行评估。评估后,其他采样器和 Controller 可以使用预处理器的结果。
就我而言,我首先使用预处理器,然后使用带有子采样器的 Controller 。在这种情况下,预处理器没有在适当的时间进行评估,因为 Controller 之前没有采样器:
1. PreProcessor
2. Controller (can't use the PreProcessor's result)
2.1. Sampler
解决方案
如果任何采样器位于 Controller 之前,则预处理器将在 Controller 之前被评估。预处理器和 Controller 之间必须有一个采样器(例如测试操作、调试采样器或任何“不执行任何操作”的采样器)。在这种情况下,运行顺序是预期的:
1. PreProcessor
2. Sampler (can use the PreProcessor's result)
3. Controller (can use the PreProcessor's result)
关于jmeter - 如果 Controller 与预处理器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13379518/