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
,Searchable
,TestElement
,TestCompilerHelper
public class LoopController extends GenericController implements Serializable
Class that implements the Loop Controller, ie iterate infinitely or a configured number of times- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
INFINITE_LOOP_COUNT
static String
LOOPS
-
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 Description LoopController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
getIterCount()
int
getLoops()
String
getLoopString()
protected void
incrementLoopCount()
Sampler
next()
Determines the next sampler to be processed.protected Sampler
nextIsNull()
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 stateprotected void
resetLoopCount()
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
setLoops(String loopValue)
void
startNextLoop()
Start next iterationvoid
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, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, nextIsAController, nextIsASampler, readResolve, reInitializeSubController, 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, 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, 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 Detail
-
INFINITE_LOOP_COUNT
public static final int INFINITE_LOOP_COUNT
- See Also:
- Constant Field Values
-
LOOPS
public static final String LOOPS
- See Also:
- Constant Field Values
-
-
Method Detail
-
setLoops
public void setLoops(int loops)
-
setLoops
public void setLoops(String loopValue)
-
getLoops
public int getLoops()
-
getLoopString
public String 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
public Sampler 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
protected Sampler nextIsNull() throws NextIsNullException
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
-
-