Class AbstractThreadGroup

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.threads.AbstractThreadGroup
All Implemented Interfaces:
Serializable, Cloneable, Controller, Searchable, TestElement, JMeterThreadMonitor, TestCompilerHelper
Direct Known Subclasses:
ThreadGroup

public abstract class AbstractThreadGroup extends AbstractTestElement implements Serializable, Controller, JMeterThreadMonitor, TestCompilerHelper
ThreadGroup holds the settings for a JMeter thread group. This class is intended to be ThreadSafe.
See Also:
  • Field Details

    • ON_SAMPLE_ERROR

      public static final String ON_SAMPLE_ERROR
      Action to be taken when a Sampler error occurs
      See Also:
    • ON_SAMPLE_ERROR_CONTINUE

      public static final String ON_SAMPLE_ERROR_CONTINUE
      Continue, i.e. ignore sampler errors
      See Also:
    • ON_SAMPLE_ERROR_START_NEXT_LOOP

      public static final String ON_SAMPLE_ERROR_START_NEXT_LOOP
      Start next loop for current thread if sampler error occurs
      See Also:
    • ON_SAMPLE_ERROR_STOPTHREAD

      public static final String ON_SAMPLE_ERROR_STOPTHREAD
      Stop current thread if sampler error occurs
      See Also:
    • ON_SAMPLE_ERROR_STOPTEST

      public static final String ON_SAMPLE_ERROR_STOPTEST
      Stop test (all threads) if sampler error occurs, the entire test is stopped at the end of any current samples
      See Also:
    • ON_SAMPLE_ERROR_STOPTEST_NOW

      public static final String ON_SAMPLE_ERROR_STOPTEST_NOW
      Stop test NOW (all threads) if sampler error occurs, the entire test is stopped abruptly. Any current samplers are interrupted if possible.
      See Also:
    • NUM_THREADS

      public static final String NUM_THREADS
      Number of threads in the thread group
      See Also:
    • MAIN_CONTROLLER

      public static final String MAIN_CONTROLLER
      See Also:
  • Constructor Details

    • AbstractThreadGroup

      public AbstractThreadGroup()
  • Method Details

    • isDone

      public boolean isDone()
      Indicates whether the Controller is done delivering Samplers for the rest of the test. When the top-level controller returns true to JMeterThread, the thread is complete.
      Specified by:
      isDone in interface Controller
      Returns:
      boolean
    • next

      public Sampler next()
      Delivers the next Sampler or null
      Specified by:
      next in interface Controller
      Returns:
      org.apache.jmeter.samplers.Sampler or null
    • getSamplerController

      public Controller getSamplerController()
      Get the sampler controller.
      Returns:
      the sampler controller.
    • setSamplerController

      public void setSamplerController(LoopController c)
      Set the sampler controller.
      Parameters:
      c - the sampler controller.
    • addTestElement

      public void addTestElement(TestElement child)
      Add a test element.
      Specified by:
      addTestElement in interface TestElement
      Overrides:
      addTestElement in class AbstractTestElement
      Parameters:
      child - the test element to add.
    • addTestElementOnce

      public final boolean addTestElementOnce(TestElement child)
      Add child test element only if it has not already been added.

      Only for use by TestCompiler.

      Specified by:
      addTestElementOnce in interface TestCompilerHelper
      Parameters:
      child - the TestElement to be added
      Returns:
      true if the child was added
    • addIterationListener

      public void addIterationListener(LoopIterationListener lis)
      Controllers have to notify listeners of when they begin an iteration through their sub-elements.
      Specified by:
      addIterationListener in interface Controller
      Parameters:
      lis - The LoopIterationListener to add
    • removeIterationListener

      public void removeIterationListener(LoopIterationListener iterationListener)
      Unregister IterationListener
      Specified by:
      removeIterationListener in interface Controller
      Parameters:
      iterationListener - LoopIterationListener
    • initialize

      public void initialize()
      Called to initialize a controller at the beginning of a test iteration.
      Specified by:
      initialize in interface Controller
    • startNextLoop

      public void startNextLoop()
      Start next iteration after an error
    • triggerEndOfLoop

      public void triggerEndOfLoop()
      NOOP
      Specified by:
      triggerEndOfLoop in interface Controller
    • setNumThreads

      public void setNumThreads(int numThreads)
      Set the total number of threads to start
      Parameters:
      numThreads - the number of threads.
    • getNumberOfThreads

      public int getNumberOfThreads()
      Get the number of active threads
      Returns:
      the number of active threads
    • getNumThreads

      public int getNumThreads()
      Get the number of threads.
      Returns:
      the number of threads.
    • getOnErrorStartNextLoop

      public boolean getOnErrorStartNextLoop()
      Check if a sampler error should cause thread to start next loop.
      Returns:
      true if thread should start next loop
    • getOnErrorStopThread

      public boolean getOnErrorStopThread()
      Check if a sampler error should cause thread to stop.
      Returns:
      true if thread should stop
    • getOnErrorStopTest

      public boolean getOnErrorStopTest()
      Check if a sampler error should cause test to stop.
      Returns:
      true if test (all threads) should stop
    • getOnErrorStopTestNow

      public boolean getOnErrorStopTestNow()
      Check if a sampler error should cause test to stop now.
      Returns:
      true if test (all threads) should stop immediately
    • stopThread

      public abstract boolean stopThread(String threadName, boolean now)
    • numberOfActiveThreads

      public abstract int numberOfActiveThreads()
    • start

      public abstract void start(int groupCount, ListenerNotifier notifier, ListedHashTree threadGroupTree, StandardJMeterEngine engine)
    • verifyThreadsStopped

      public abstract boolean verifyThreadsStopped()
    • waitThreadsStopped

      public abstract void waitThreadsStopped()
    • tellThreadsToStop

      public abstract void tellThreadsToStop()
    • stop

      public abstract void stop()