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, Searchable, TestElement, TestCompilerHelper
Class that implements the Loop Controller, ie iterate infinitely or a configured number of times
- See Also:
-
Field Summary
FieldsFields inherited from class GenericController
current, subControllersAndSamplersFields inherited from interface TestElement
COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intintgetLoops()protected voidnext()Determines the next sampler to be processed.protected Samplerprotected voidResets 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 stateprotected voidvoidsetContinueForever(boolean forever) Determines whether the loop will return any samples if it is rerun.protected voidsetDone(boolean done) voidsetLoops(int loops) voidvoidStart next iterationvoidTrigger end of loop condition on controller (used by Start Next Loop feature)Methods inherited from class GenericController
addIterationListener, addTestElement, addTestElementOnce, currentReturnedNull, fireIterationStart, fireIterEvents, getCurrentElement, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, nextIsAController, nextIsASampler, readResolve, reInitializeSubController, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setFirstMethods inherited from class 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, traversePropertyMethods inherited from class Object
finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface TestElement
canRemove, clear, clearTestElementChildren, clone, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removeProperty, 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
-
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:
nextin interfaceController- Overrides:
nextin classGenericController- Returns:
- the next sampler or
null
-
setDone
protected void setDone(boolean done) - Overrides:
setDonein classGenericController
-
nextIsNull
Called byGenericController.next()whenGenericController.getCurrentElement()returnsnull. Reinitialises the controller.- Overrides:
nextIsNullin 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:
triggerEndOfLoopin interfaceController- Overrides:
triggerEndOfLoopin classGenericController
-
incrementLoopCount
protected void incrementLoopCount() -
resetLoopCount
protected void resetLoopCount() -
getIterCount
protected int getIterCount()- Overrides:
getIterCountin 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:
reInitializein classGenericController
-
startNextLoop
public void startNextLoop()Start next iteration
-