Это не служба написания кода, поэтому, если вы «хотите» функцию, вы можете попросить кого-нибудь разработать ее для вас, используя такие внештатные онлайн-агентства, как Fiverr или Toptal
В качестве исключения я могу дать вам подсказку: если вы посмотрите на исходный код класса ThreadGroup , вы увидите что-то вроде:
// List of active threads
private final ConcurrentHashMap<JMeterThread, Thread> allThreads = new ConcurrentHashMap<>();
Так что все активные потоки живут в allThreads
Карта ThreadGroup.
Зная это, вы можете попытаться найти поток по имени на этой карте, если он не равен нулю - поток работает и наоборот.
Пример кода:
def threadName = 'Thread Group 1-1'
def threadGroup = ctx.getThreadGroup()
def field = org.apache.commons.lang3.reflect.FieldUtils.getDeclaredField(threadGroup.getClass(), 'allThreads', true)
def allThreads = field.get(threadGroup)
def thread1 = allThreads.keySet().find { key -> key.getThreadName().equals(threadName) }
if (thread1 != null) {
log.info('Thread ' + threadName + ' is running')
} else {
log.info('Thread ' + threadName + ' is not running')
}
Демонстрация:
Дополнительная информация: Apache Groovy - Почему и как вы должны его использовать