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

- - ### Field Summary

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

      `current, subControllersAndSamplers`

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

      `COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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, 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, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

- - ### Constructor Detail

    - #### TransactionController

          public TransactionController()

      Creates a Transaction Controller

  - ### Method Detail

    - #### 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)

Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.