使用Jmeter,我希望实现这样的目标:
Thread Group 1
- Http Request 1
- Set P1 to "true"
- Wait synchronization with Thread Group 2 (parameters P1 and P2 are both "true")
- Http Request 2
Thread Group 2
- Http Request 1
- Set P2 to "true"
- Wait synchronization with Thread Group 1 (parameters P1 and P2 are both "true")
- Http Request 2
这与here和here描述的基本相同:我将P1和P2设置为" true"如下(HTTP Request / BeanShell都有效):
${__setProperty(P1,"true",)}
我的问题是如何实现等待条件。我已经为while控制器的退出条件尝试了所有可能的组合,但无法达到我想要的效果。奇怪的是,循环中放置的Debug采样器(或带有log.info的beanshell)向我显示正确设置属性P1和P2(并且退出条件满足我的期望),但它无论如何都不会退出。例如我尝试过:
${__property("P1")}!="true"||${__property("P2")}!="true"
${__property(P1)}!="true"||${__property(P2)}!="true"
${__property(P1)}=="true"&&${__property(P2)}=="true"
${__property("P1")}=="true"&&${__property("P2")}=="true"
任何人都可以帮助我吗?提前谢谢!
答案 0 :(得分:0)
请参阅处理内部线程通信的此组件:
答案 1 :(得分:0)
诀窍是对while条件使用__BeanShell函数:
${__BeanShell((${__property(P1)}!="true"||${__property(P2)}!="true"}
此外,While控制器不能为空(您必须添加一个采样器或类似的东西,否则将被跳过)。