我已经设置了一个包含多个线程组的负载测试计划,即 -
此处如果注册线程不成功,我不想执行剩余的线程组。如果是单个线程组,我可以使用if controller
并在一个示例失败时丢弃示例,但是当我使用多个线程组时如何实现它。
答案 0 :(得分:1)
JMeter变量范围仅限于当前的线程组,如果要根据另一个线程组中设置的条件使用If控制器 - 您应该使用JMeter属性(JMeter属性范围对于整个JVM是全局的) )。有关将JMeter变量转换为JMeter属性的详细信息,请参阅How to Use Variables in Different Thread Groups文章。
在线程组之间传递数据和设置依赖关系时,您可能还会发现InterThread Communication插件很有用。
但是,根据您的场景,您需要传递整个线程上下文(cookie,缓存等),这可能会很棘手,因此将所有采样器放在同一个线程组下并使用Throughput Controller会更好,Switch Controller或Weighted Switch Controller,无论您的情景与最接近的方式相匹配。有关详细信息,请参阅Running JMeter Samplers with Defined Percentage Probability指南。