Package org.apache.jmeter.threads
Class ThreadGroup
java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.threads.AbstractThreadGroup
org.apache.jmeter.threads.ThreadGroup
- All Implemented Interfaces:
Serializable,Cloneable,Controller,Searchable,org.apache.jmeter.testelement.TestElement,JMeterThreadMonitor,TestCompilerHelper
- Direct Known Subclasses:
PostThreadGroup,SetupThreadGroup
ThreadGroup holds the settings for a JMeter thread group.
This class is intended to be ThreadSafe.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement
org.apache.jmeter.testelement.TestElement.Companion -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringScheduler start delay, overrides start timestatic final StringWhether thread startup is delayed until requiredstatic final StringScheduler duration, overrides end timestatic final StringRamp-up timestatic final StringWhether scheduler is being usedFields inherited from class org.apache.jmeter.threads.AbstractThreadGroup
DEFAULT_THREAD_STOP_TIMEOUT, IS_SAME_USER_ON_NEXT_ITERATION, MAIN_CONTROLLER, NUM_THREADS, ON_SAMPLE_ERROR, ON_SAMPLE_ERROR_CONTINUE, ON_SAMPLE_ERROR_START_NEXT_LOOP, ON_SAMPLE_ERROR_STOPTEST, ON_SAMPLE_ERROR_STOPTEST_NOW, ON_SAMPLE_ERROR_STOPTHREADFields inherited from interface org.apache.jmeter.testelement.TestElement
COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddNewThread(int delay, StandardJMeterEngine engine) Add a newJMeterThreadto thisThreadGroupfor enginelonggetDelay()Get the startup delaylongGet the desired duration of the thread group test run@NotNull org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends ThreadGroup,? extends org.apache.jmeter.threads.ThreadGroupSchema> getProps()intGet the ramp-up value.booleanGet whether scheduler is being usedorg.apache.jmeter.threads.ThreadGroupSchemaintvoidsetDelay(long delay) Set the startup delayvoidsetDuration(long duration) Set the desired duration of the thread group test runvoidsetRampUp(int rampUp) Set the ramp-up value.voidsetScheduler(boolean scheduler) Set whether scheduler is being usedvoidstart(int groupNum, ListenerNotifier notifier, ListedHashTree threadGroupTree, StandardJMeterEngine engine) Start theThreadGroupvoidstop()This is a clean shutdown.booleanstopThread(String threadName, boolean now) Stop thread called threadName: stop JMeter thread interrupt JMeter thread interrupt underlying threadvoidThis is an immediate stop interrupting: current running threads current running samplers For each thread, invoke:JMeterThread.stop()- set stop flagJMeterThread.interrupt()- interrupt samplerThread.interrupt()- interrupt JVM threadvoidtellThreadsToStop(boolean now) voidthreadFinished(JMeterThread thread) Called by JMeterThread when it finishesbooleanvoidWait for all Group Threads to stopMethods inherited from class org.apache.jmeter.threads.AbstractThreadGroup
addIterationListener, addTestElement, addTestElementOnce, breakThreadLoop, cloneTree, getNumberOfThreads, getNumThreads, getOnErrorStartNextLoop, getOnErrorStopTest, getOnErrorStopTestNow, getOnErrorStopThread, getSamplerController, initialize, isDone, isSameUserOnNextIteration, makeThread, next, removeIterationListener, setIsSameUserOnNextIteration, setNumThreads, setSamplerController, startNextLoop, triggerEndOfLoopMethods inherited from class org.apache.jmeter.testelement.AbstractTestElement
addPropertiesValues, addProperty, addProperty, canRemove, clear, clearTemporary, clearTestElementChildren, clone, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traversePropertyMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.jmeter.testelement.TestElement
canRemove, clear, clearTestElementChildren, clone, get, get, get, get, get, get, get, get, get, getComment, getName, getOrCreate, getOrCreate, getOrNull, getOrNull, getOrNull, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getPropertyOrNull, getString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, removeProperty, set, set, set, set, set, set, set, set, set, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse
-
Field Details
-
RAMP_TIME
Ramp-up time- See Also:
-
DELAYED_START
Whether thread startup is delayed until required- See Also:
-
SCHEDULER
Whether scheduler is being used- See Also:
-
DURATION
Scheduler duration, overrides end time- See Also:
-
DELAY
Scheduler start delay, overrides start time- See Also:
-
-
Constructor Details
-
ThreadGroup
public ThreadGroup()No-arg constructor.
-
-
Method Details
-
getSchema
public org.apache.jmeter.threads.ThreadGroupSchema getSchema()- Specified by:
getSchemain interfaceorg.apache.jmeter.testelement.TestElement- Overrides:
getSchemain classAbstractThreadGroup
-
getProps
@NotNull public @NotNull org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends ThreadGroup,? extends org.apache.jmeter.threads.ThreadGroupSchema> getProps()- Specified by:
getPropsin interfaceorg.apache.jmeter.testelement.TestElement- Overrides:
getPropsin classAbstractThreadGroup
-
setScheduler
public void setScheduler(boolean scheduler) Set whether scheduler is being used- Parameters:
scheduler- true is scheduler is to be used
-
getScheduler
public boolean getScheduler()Get whether scheduler is being used- Returns:
- true if scheduler is being used
-
getDuration
public long getDuration()Get the desired duration of the thread group test run- Returns:
- the duration (in secs)
-
setDuration
public void setDuration(long duration) Set the desired duration of the thread group test run- Parameters:
duration- in seconds
-
getDelay
public long getDelay()Get the startup delay- Returns:
- the delay (in secs)
-
setDelay
public void setDelay(long delay) Set the startup delay- Parameters:
delay- in seconds
-
setRampUp
public void setRampUp(int rampUp) Set the ramp-up value.- Parameters:
rampUp- the ramp-up value.
-
getRampUp
public int getRampUp()Get the ramp-up value.- Returns:
- the ramp-up value.
-
start
public void start(int groupNum, ListenerNotifier notifier, ListedHashTree threadGroupTree, StandardJMeterEngine engine) Description copied from class:AbstractThreadGroupStart theThreadGroup- Specified by:
startin classAbstractThreadGroup- Parameters:
groupNum- group numbernotifier-ListenerNotifierthreadGroupTree-ListedHashTreeengine-StandardJMeterEngine
-
addNewThread
Description copied from class:AbstractThreadGroupAdd a newJMeterThreadto thisThreadGroupfor engine- Specified by:
addNewThreadin classAbstractThreadGroup- Parameters:
delay- Delay in millisecondsengine-StandardJMeterEngine- Returns:
JMeterThread
-
stopThread
Stop thread called threadName:- stop JMeter thread
- interrupt JMeter thread
- interrupt underlying thread
- Specified by:
stopThreadin classAbstractThreadGroup- Parameters:
threadName- String thread namenow- boolean for stop- Returns:
- true if thread stopped
-
threadFinished
Called by JMeterThread when it finishes -
tellThreadsToStop
public void tellThreadsToStop(boolean now) -
tellThreadsToStop
public void tellThreadsToStop()This is an immediate stop interrupting:- current running threads
- current running samplers
JMeterThread.stop()- set stop flagJMeterThread.interrupt()- interrupt samplerThread.interrupt()- interrupt JVM thread
- Specified by:
tellThreadsToStopin classAbstractThreadGroup
-
stop
public void stop()This is a clean shutdown. For each thread, invoke:JMeterThread.stop()- set stop flag
- Specified by:
stopin classAbstractThreadGroup
-
numberOfActiveThreads
public int numberOfActiveThreads()- Specified by:
numberOfActiveThreadsin classAbstractThreadGroup- Returns:
- number of active threads
-
verifyThreadsStopped
public boolean verifyThreadsStopped()- Specified by:
verifyThreadsStoppedin classAbstractThreadGroup- Returns:
- boolean true if all threads stopped
-
waitThreadsStopped
public void waitThreadsStopped()Wait for all Group Threads to stop- Specified by:
waitThreadsStoppedin classAbstractThreadGroup
-