Package org.apache.jmeter.control

# Class TransactionController

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.TransactionController

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Controller`, `Searchable`, `SampleListener`, `org.apache.jmeter.testelement.TestElement`, `TestCompilerHelper`

public class TransactionController extends GenericController implements SampleListener, Controller, Serializable
Transaction Controller to measure transaction times There are two different modes for the controller: - generate additional total sample after nested samples (as in JMeter 2.2) - generate parent sampler containing the nested samples

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement

  `org.apache.jmeter.testelement.TestElement.Companion`

- ## Field Summary

  ### Fields inherited from class org.apache.jmeter.control.GenericController

  `current, subControllersAndSamplers`

  ### Fields inherited from interface org.apache.jmeter.testelement.TestElement

  `COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TransactionController()`
  Creates a Transaction Controller

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends TransactionController,? extends org.apache.jmeter.control.TransactionControllerSchema>`
  `getProps()`
  `org.apache.jmeter.control.TransactionControllerSchema`
  `getSchema()`
  `static boolean`
  `isFromTransactionController(SampleResult res)`
  `boolean`
  `isGenerateParentSample()`
  `boolean`
  `isIncludeTimers()`
  Whether to include timer and pre/post processor time in overall sample.
  `Sampler`
  `next()`
  Determines the next sampler to be processed.
  `protected Sampler`
  `nextIsAController(Controller controller)`
  Called by `GenericController.next()` if the element is a Controller, and returns the next sampler from the controller.
  `protected void`
  `notifyListeners()`
  Create additional SampleEvent in NON Parent Mode
  `protected Object`
  `readResolve()`
  `void`
  `sampleOccurred(SampleEvent se)`
  A sample has started and stopped.
  `void`
  `sampleStarted(SampleEvent e)`
  A sample has started.
  `void`
  `sampleStopped(SampleEvent e)`
  A sample has stopped.
  `void`
  `setGenerateParentSample(boolean generateParent)`
  `void`
  `setIncludeTimers(boolean includeTimers)`
  Whether to include timers and pre/post processor time in overall sample.
  `void`
  `triggerEndOfLoop()`
  Trigger end of loop condition on controller (used by Start Next Loop feature)

  ### Methods inherited from class org.apache.jmeter.control.GenericController

  `addIterationListener, addTestElement, addTestElementOnce, currentReturnedNull, fireIterationStart, fireIterEvents, getCurrentElement, getIterCount, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, nextIsASampler, nextIsNull, reInitialize, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, setFirst`

  ### Methods 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, traverseProperty`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.jmeter.control.Controller

  `addIterationListener, initialize, isDone, removeIterationListener`

  ### Methods inherited from interface org.apache.jmeter.testelement.TestElement

  `addTestElement, 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`

- ## Constructor Details

  - ### TransactionController

    public TransactionController()
    Creates a Transaction Controller

- ## Method Details

  - ### getSchema

    public org.apache.jmeter.control.TransactionControllerSchema getSchema()
    Specified by:
      `getSchema` in interface `org.apache.jmeter.testelement.TestElement`
    Overrides:
      `getSchema` in class `GenericController`

  - ### getProps

    public org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends TransactionController,? extends org.apache.jmeter.control.TransactionControllerSchema> getProps()
    Specified by:
      `getProps` in interface `org.apache.jmeter.testelement.TestElement`
    Overrides:
      `getProps` in class `GenericController`

  - ### readResolve

    protected Object readResolve()
    Overrides:
      `readResolve` in class `GenericController`

  - ### setGenerateParentSample

    public void setGenerateParentSample(boolean generateParent)
    Parameters:
      `generateParent` - flag whether a parent sample should be generated.

  - ### isGenerateParentSample

    public boolean isGenerateParentSample()
    Returns:
      `true` if a parent sample will be generated

  - ### next

    public Sampler next()
    Description copied from class: `GenericController`

    Determines the next sampler to be processed.

    If `GenericController.isDone()` is `true`, returns null.

    Gets the list element using current pointer. If this is `null`, calls `GenericController.nextIsNull()`.

    If the list element is a `Sampler`, calls `GenericController.nextIsASampler(Sampler)`, otherwise calls `GenericController.nextIsAController(Controller)`

    If any of the called methods throws `NextIsNullException`, returns `null`, otherwise the value obtained above is returned.

    Specified by:
      `next` in interface `Controller`
    Overrides:
      `next` in class `GenericController`
    Returns:
      the next sampler or `null`
    See Also:
      - `Controller.next()`

  - ### nextIsAController

    protected Sampler nextIsAController(Controller controller) throws NextIsNullException
    Description copied from class: `GenericController`
    Called by `GenericController.next()` if the element is a Controller, and returns the next sampler from the controller. If this is `null`, then updates the current pointer and makes recursive call to `GenericController.next()`.
    Overrides:
      `nextIsAController` in class `GenericController`
    Parameters:
      `controller` - the current next element
    Returns:
      the next sampler
    Throws:
      `NextIsNullException` - when the end of the list has already been reached

  - ### isFromTransactionController

    public static boolean isFromTransactionController(SampleResult res)
    Parameters:
      `res` - `SampleResult`
    Returns:
      true if res is the ParentSampler transactions

  - ### triggerEndOfLoop

    public void triggerEndOfLoop()
    Description copied from class: `GenericController`
    Trigger end of loop condition on controller (used by Start Next Loop feature)
    Specified by:
      `triggerEndOfLoop` in interface `Controller`
    Overrides:
      `triggerEndOfLoop` in class `GenericController`
    See Also:
      - `GenericController.triggerEndOfLoop()`

  - ### notifyListeners

    protected void notifyListeners()
    Create additional SampleEvent in NON Parent Mode

  - ### sampleOccurred

    public void sampleOccurred(SampleEvent se)
    Description copied from interface: `SampleListener`
    A sample has started and stopped.
    Specified by:
      `sampleOccurred` in interface `SampleListener`
    Parameters:
      `se` - the `SampleEvent` that has occurred

  - ### sampleStarted

    public void sampleStarted(SampleEvent e)
    Description copied from interface: `SampleListener`
    A sample has started.
    Specified by:
      `sampleStarted` in interface `SampleListener`
    Parameters:
      `e` - the `SampleEvent` that has started

  - ### sampleStopped

    public void sampleStopped(SampleEvent e)
    Description copied from interface: `SampleListener`
    A sample has stopped.
    Specified by:
      `sampleStopped` in interface `SampleListener`
    Parameters:
      `e` - the `SampleEvent` that has stopped

  - ### setIncludeTimers

    public void setIncludeTimers(boolean includeTimers)
    Whether to include timers and pre/post processor time in overall sample.
    Parameters:
      `includeTimers` - Flag whether timers and pre/post processor should be included in overall sample

  - ### isIncludeTimers

    public boolean isIncludeTimers()
    Whether to include timer and pre/post processor time in overall sample.
    Returns:
      boolean (defaults to true for backwards compatibility)