Package org.apache.jmeter.control
Class InterleaveControl
java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.InterleaveControl
- All Implemented Interfaces:
Serializable
,Cloneable
,Controller
,Searchable
,org.apache.jmeter.testelement.TestElement
,TestCompilerHelper
- Direct Known Subclasses:
RandomController
Alternate among each of the children controllers or samplers for each loop iteration
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement
org.apache.jmeter.testelement.TestElement.Companion
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
static final int
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
If the controller is done, remove it from the list, otherwise increment to next entry in list.boolean
int
getStyle()
protected void
Increments the current pointer; called by currentReturnedNull to move the controller on to its next child.void
Called to initialize a controller at the beginning of a test iteration.protected boolean
next()
Determines the next sampler to be processed.protected Sampler
nextIsAController
(Controller controller) Called byGenericController.next()
if the element is a Controller, and returns the next sampler from the controller.protected Sampler
nextIsASampler
(Sampler element) Increment the current pointer and return the element.protected Sampler
If the current is null, reset and continue searching.void
Resets the controller (called after execution of last child of controller): resetCurrent() (i.e.protected void
setCurrentElement
(org.apache.jmeter.testelement.TestElement currentElement) Empty implementation - does nothing.void
setInterleaveAccrossThreads
(boolean accrossThreads) protected void
setSkipNext
(boolean skipNext) void
setStyle
(int style) Methods inherited from class org.apache.jmeter.control.GenericController
addIterationListener, addTestElement, addTestElementOnce, fireIterationStart, fireIterEvents, getCurrentElement, getIterCount, getProps, getSchema, getSubControllers, incrementIterCount, initializeSubControllers, isDone, isFirst, readResolve, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setDone, setFirst, triggerEndOfLoop
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.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
-
IGNORE_SUB_CONTROLLERS
public static final int IGNORE_SUB_CONTROLLERS- See Also:
-
USE_SUB_CONTROLLERS
public static final int USE_SUB_CONTROLLERS- See Also:
-
-
Constructor Details
-
InterleaveControl
public InterleaveControl()Constructor for the InterleaveControl object
-
-
Method Details
-
reInitialize
public void reInitialize()Resets the controller (called after execution of last child of controller):- resetCurrent() (i.e. current=0)
- increment iteration count
- sets first=true
- recoverRunningVersion() to set the controller back to the initial state
- Overrides:
reInitialize
in classGenericController
-
setStyle
public void setStyle(int style) -
getStyle
public int getStyle() -
setInterleaveAccrossThreads
public void setInterleaveAccrossThreads(boolean accrossThreads) -
getInterleaveAccrossThreads
public boolean getInterleaveAccrossThreads() -
next
Determines the next sampler to be processed.
If
GenericController.isDone()
istrue
, returns null.Gets the list element using current pointer. If this is
null
, callsGenericController.nextIsNull()
.If the list element is a
Sampler
, callsGenericController.nextIsASampler(Sampler)
, otherwise callsGenericController.nextIsAController(Controller)
If any of the called methods throws
NextIsNullException
, returnsnull
, otherwise the value obtained above is returned.- Specified by:
next
in interfaceController
- Overrides:
next
in classGenericController
- Returns:
- the next sampler or
null
-
nextIsAController
Called byGenericController.next()
if the element is a Controller, and returns the next sampler from the controller. If this isnull
, then updates the current pointer and makes recursive call toGenericController.next()
.- Overrides:
nextIsAController
in classGenericController
- Parameters:
controller
- the current next element- Returns:
- the next sampler
- Throws:
NextIsNullException
- when the end of the list has already been reached
-
nextIsASampler
Increment the current pointer and return the element. Called byGenericController.next()
if the element is a sampler. (May be overridden by sub-classes).- Overrides:
nextIsASampler
in classGenericController
- Parameters:
element
- the current next element- Returns:
- input element
- Throws:
NextIsNullException
- when the end of the list has already been reached
-
nextIsNull
If the current is null, reset and continue searching. The searchStart attribute will break us off when we start a repeat.Called by
GenericController.next()
whenGenericController.getCurrentElement()
returnsnull
. Reinitialises the controller.- Overrides:
nextIsNull
in classGenericController
- Returns:
- null (always, for this class)
-
setCurrentElement
protected void setCurrentElement(org.apache.jmeter.testelement.TestElement currentElement) throws NextIsNullException Empty implementation - does nothing.- Overrides:
setCurrentElement
in classGenericController
- Parameters:
currentElement
- the current element- Throws:
NextIsNullException
- when the list has been completed already
-
currentReturnedNull
If the controller is done, remove it from the list, otherwise increment to next entry in list.- Overrides:
currentReturnedNull
in classGenericController
- Parameters:
c
- controller
-
isSkipNext
protected boolean isSkipNext() -
setSkipNext
protected void setSkipNext(boolean skipNext) -
incrementCurrent
protected void incrementCurrent()Increments the current pointer; called by currentReturnedNull to move the controller on to its next child.- Overrides:
incrementCurrent
in classGenericController
-
initialize
public void initialize()Description copied from interface:Controller
Called to initialize a controller at the beginning of a test iteration.- Specified by:
initialize
in interfaceController
- Overrides:
initialize
in classGenericController
- See Also:
-