Package org.apache.jmeter.control
Class LoopController
java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.LoopController
- All Implemented Interfaces:
Serializable
,Cloneable
,Controller
,IteratingController
,LoopIterationListener
,Searchable
,org.apache.jmeter.testelement.TestElement
,TestCompilerHelper
public class LoopController
extends GenericController
implements Serializable, IteratingController, LoopIterationListener
Class that implements the Loop Controller, ie iterate infinitely or a configured number of times
- See Also:
-
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
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Break loop ("break" keyword equivalent)protected int
int
getLoops()
org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends LoopController,
? extends org.apache.jmeter.control.LoopControllerSchema> getProps()
org.apache.jmeter.control.LoopControllerSchema
protected void
void
iterationStart
(LoopIterationEvent iterEvent) Called when a loop iteration is about to start.next()
Determines the next sampler to be processed.protected Sampler
protected void
Resets the controller (called after execution of last child of controller): resetCurrent() (i.e.protected void
void
setContinueForever
(boolean forever) Determines whether the loop will return any samples if it is rerun.protected void
setDone
(boolean done) void
setLoops
(int loops) void
void
Start next iterationvoid
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, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, nextIsAController, nextIsASampler, readResolve, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, 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.IteratingController
updateIterationIndex
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
-
INFINITE_LOOP_COUNT
public static final int INFINITE_LOOP_COUNT- See Also:
-
LOOPS
- See Also:
-
-
Constructor Details
-
LoopController
public LoopController()
-
-
Method Details
-
getSchema
public org.apache.jmeter.control.LoopControllerSchema getSchema()- Specified by:
getSchema
in interfaceorg.apache.jmeter.testelement.TestElement
- Overrides:
getSchema
in classGenericController
-
getProps
public org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends LoopController,? extends org.apache.jmeter.control.LoopControllerSchema> getProps()- Specified by:
getProps
in interfaceorg.apache.jmeter.testelement.TestElement
- Overrides:
getProps
in classGenericController
-
setLoops
public void setLoops(int loops) -
setLoops
-
getLoops
public int getLoops() -
getLoopString
-
setContinueForever
public void setContinueForever(boolean forever) Determines whether the loop will return any samples if it is rerun.- Parameters:
forever
- true if the loop must be reset after ending a run
-
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
-
setDone
protected void setDone(boolean done) - Overrides:
setDone
in classGenericController
-
nextIsNull
Called byGenericController.next()
whenGenericController.getCurrentElement()
returnsnull
. Reinitialises the controller.- Overrides:
nextIsNull
in classGenericController
- Returns:
- null (always, for this class)
- Throws:
NextIsNullException
- when the end of the list has already been reached
-
triggerEndOfLoop
public void triggerEndOfLoop()Trigger end of loop condition on controller (used by Start Next Loop feature)- Specified by:
triggerEndOfLoop
in interfaceController
- Overrides:
triggerEndOfLoop
in classGenericController
-
incrementLoopCount
protected void incrementLoopCount() -
resetLoopCount
protected void resetLoopCount() -
getIterCount
protected int getIterCount()- Overrides:
getIterCount
in classGenericController
-
reInitialize
protected 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
-
startNextLoop
public void startNextLoop()Start next iteration- Specified by:
startNextLoop
in interfaceIteratingController
-
breakLoop
public void breakLoop()Description copied from interface:IteratingController
Break loop ("break" keyword equivalent)- Specified by:
breakLoop
in interfaceIteratingController
-
iterationStart
Description copied from interface:LoopIterationListener
Called when a loop iteration is about to start.- Specified by:
iterationStart
in interfaceLoopIterationListener
- Parameters:
iterEvent
- the event
-