Class ForeachController
java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.ForeachController
- All Implemented Interfaces:
Serializable, Cloneable, Controller, Searchable, TestElement, TestCompilerHelper
ForeachController that iterates over a list of variables named XXXX_NN stored in
JMeterVariables
where NN is a number starting from 1 to number of occurences.
This list of variable is usually set by PostProcessor (Regexp PostProcessor or HtmlExtractor)
Iteration can take the full list or only a subset (configured through indexes)- See Also:
-
Field Summary
Fields 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 intbooleanprotected voidvoidReset loopCount to Start indexbooleanisDone()Indicates whether the Controller is done delivering Samplers for the rest of the test.next()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 voidvoidsetEndIndex(String endIndex) voidsetInputVal(String inputValue) voidsetReturnVal(String inputValue) voidsetStartIndex(String startIndex) voidsetUseSeparator(boolean b) voidTrigger 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, initializeSubControllers, isFirst, nextIsAController, nextIsASampler, readResolve, reInitializeSubController, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, 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
-
Constructor Details
-
ForeachController
public ForeachController()
-
-
Method Details
-
setStartIndex
- Parameters:
startIndex- Start index of loop
-
getStartIndexAsString
- Returns:
- start index of loop as String
-
setEndIndex
- Parameters:
endIndex- End index of loop
-
getEndIndexAsString
- Returns:
- end index of loop
-
setInputVal
-
getInputValString
-
setReturnVal
-
getReturnValString
-
setUseSeparator
public void setUseSeparator(boolean b) -
getUseSeparator
public boolean getUseSeparator() -
isDone
public boolean isDone()Indicates whether the Controller is done delivering Samplers for the rest of the test. When the top-level controller returns true to JMeterThread, the thread is complete.- Specified by:
isDonein interfaceController- Overrides:
isDonein classGenericController- Returns:
- boolean
- See Also:
-
next
Description copied from class:GenericControllerDetermines 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
-
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
-
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
-
triggerEndOfLoop
public void triggerEndOfLoop()Trigger end of loop condition on controller (used by Start Next Loop feature)- Specified by:
triggerEndOfLoopin interfaceController- Overrides:
triggerEndOfLoopin classGenericController
-
initialize
public void initialize()Reset loopCount to Start index- Specified by:
initializein interfaceController- Overrides:
initializein classGenericController- See Also:
-