如何使jmeter线程组休眠,直到其他线程组中的所有线程都处于活动状态

如何使jmeter线程组休眠,直到其他线程组中的所有线程都处于活动状态,jmeter,Jmeter,我在jmeter项目中有两个线程组,当我运行它时,线程组2与线程组1并行启动。有没有办法让threadgroup2等到tg1中的所有线程都处于活动/运行状态 基本上,在threadgroup1中,我引入了负载,而在threadgroup2中,我有一个与selenium集成的线程,用于捕获应用负载时的实际响应时间。目前,在tg1中的所有线程启动之前,tg2启动。我认为最简单的选择是在线程组2中使用启动延迟。延迟期是线程组1的加速期(+几秒钟)。此时,JMeter将启动线程组1中的所有线程 另一种方

我在jmeter项目中有两个线程组,当我运行它时,线程组2与线程组1并行启动。有没有办法让threadgroup2等到tg1中的所有线程都处于活动/运行状态


基本上,在threadgroup1中,我引入了负载,而在threadgroup2中,我有一个与selenium集成的线程,用于捕获应用负载时的实际响应时间。目前,在tg1中的所有线程启动之前,tg2启动。

我认为最简单的选择是在线程组2中使用
启动延迟。延迟期是线程组1的加速期(+几秒钟)。此时,JMeter将启动线程组1中的所有线程

另一种方法是在
线程组2中使用beanshell来计算线程组1的活动线程总数。(假设只有2个线程组)

org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads()
给出jmeter测试的活动线程总数

ctx.getThreadGroup().numberOfActiveThreads()
-给出当前线程组中的活动线程

所以


在线程组2中,使用
If控制器
检查线程组1的活动线程数,方法是使用
grp1\u Thread\u count
发送请求。

我认为最简单的选择是在线程组2中使用
启动延迟
。延迟期是线程组1的加速期(+几秒钟)。此时,JMeter将启动线程组1中的所有线程

另一种方法是在
线程组2中使用beanshell来计算线程组1的活动线程总数。(假设只有2个线程组)

org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads()
给出jmeter测试的活动线程总数

ctx.getThreadGroup().numberOfActiveThreads()
-给出当前线程组中的活动线程

所以


在线程组2中,通过使用
grp1_Thread_count
的值发送请求,使用
If controller
检查线程组1的活动线程数。

我不知道如何与JMeter集成,但如果我有两个线程组,我将使用CountdownLatch()。您可以阻塞闩锁(在一个单独的线程上),直到Group1中的所有线程都已减少闩锁并正在运行。一旦解除阻止,这个单独的线程就可以启动第二个组。@Vikaram Jere,你在线程组2中尝试过“启动延迟”吗?这没有帮助吗?我不会依赖固定的延迟来启动线程。最好使用一些结构良好的信号。我不知道如何与JMeter集成,但如果我有两个线程组,我会使用CountdownLatch()。您可以阻塞闩锁(在一个单独的线程上),直到Group1中的所有线程都已减少闩锁并正在运行。一旦解除阻止,这个单独的线程就可以启动第二个组。@Vikaram Jere,你在线程组2中尝试过“启动延迟”吗?这没有帮助吗?我不会依赖固定的延迟来启动线程。你最好使用一些结构良好的信号。
int grp1_thread_count = org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads() - ctx.getThreadGroup().numberOfActiveThreads();