如何从另一个线程启动Jmeter线程?

时间:2018-11-13 10:12:43

标签: jmeter load-testing

我有线程A执行用户登录,设置一些设置并创建一些记录。在“记录”页面上工作时,有一个后台线程Thread B(每15秒调用一次)执行某种同步,但仅当我在“记录”页面上时。

我设法做的是创建了第二个线程,每15秒将触发一次这些请求。使用BeanShell PreProcessor,我在两个线程之间共享cookie,以便第二个线程中的Http cookie管理器使用与第一个相同的变量/值。我的请求工作正常。

我不知道的是,当线程A到达涉及记录的步骤时,如何触发线程B。一种选择是将线程B延迟一定的时间,但这并不是很可靠,因为我无法事先知道线程A完成创建用户需要多长时间。

有没有办法从另一个线程触发一个线程?

1 个答案:

答案 0 :(得分:0)

看看Inter-Thread Communication Plugin-它允许基于简单的FIFO队列在不同线程之间(即使它们位于不同的线程组中)同步动作。

逻辑将是:

  • 当您通过线程A执行某些操作时,使用fifoPut函数将某些内容放入队列
  • 线程B将扫描队列,如果出现任何异常,它将获取值并开始执行自己的操作。

签出SynchronizationExample.jmx测试计划以参考实施。

您可以使用JMeter Plugins Manager

安装线程间通信插件。

还请注意,starting from JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting请避免Beanshell的发展。