我在jmeter项目中有2个线程组,当我运行它时,线程group2与threadgroup1一起开始并行。有没有办法让threadgroup2等到tg1中的所有线程都变为活动/运行状态?
基本上在threadgroup1中我引起了负载,在threadgroup2中,我有一个与selenium集成的线程,用于捕获加载时的实际响应时间。目前,在tg1中的所有线程都被触发之前tg2开始。
答案 0 :(得分:0)
我认为最简单的选择是使用线程组2中的Startup delay
。延迟时间段是线程组1的上升时间段(+几秒)。此时,JMeter将启动所有线程组1中的线程。
另一种方法是使用Thread Group 2
中的beanshell来计算线程组1的总活动线程数。(假设你只有2个线程组)
org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads()
给出了Jmeter测试的总活动线程。
ctx.getThreadGroup().numberOfActiveThreads()
- 给出当前线程组中的活动线程。
所以,
int grp1_thread_count = org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads() - ctx.getThreadGroup().numberOfActiveThreads();
在线程组2中,使用If controller
通过使用grp1_thread_count
的值发送请求来检查线程组1的活动线程数。