Package org.apache.jmeter.control
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,- IteratingController,- LoopIterationListener,- Searchable,- org.apache.jmeter.testelement.TestElement,- TestCompilerHelper
public class ForeachController
extends GenericController
implements Serializable, IteratingController
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 occurrences.
 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:
- 
Nested Class SummaryNested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElementorg.apache.jmeter.testelement.TestElement.Companion
- 
Field SummaryFields inherited from class org.apache.jmeter.control.GenericControllercurrent, subControllersAndSamplersFields inherited from interface org.apache.jmeter.testelement.TestElementCOMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidBreak loop ("break" keyword equivalent)protected intbooleanprotected voidvoidReset loopCount to Start indexbooleanisDone()Indicates whether the Controller is done delivering Samplers for the rest of the test.voiditerationStart(LoopIterationEvent iterEvent) Called when a loop iteration is about to start.next()Determines the next sampler to be processed.protected Samplerprotected voidResets the controller (called after execution of last child of controller): resetCurrent() (i.e.protected voidvoidsetEndIndex(String endIndex) voidsetInputVal(String inputValue) voidsetReturnVal(String inputValue) voidsetStartIndex(String startIndex) voidsetUseSeparator(boolean b) voidStart next iteration ("continue" keyword equivalent in loops)voidTrigger end of loop condition on controller (used by Start Next Loop feature)Methods inherited from class org.apache.jmeter.control.GenericControlleraddIterationListener, addTestElement, addTestElementOnce, currentReturnedNull, fireIterationStart, fireIterEvents, getCurrentElement, getProps, getSchema, getSubControllers, incrementCurrent, incrementIterCount, initializeSubControllers, isFirst, nextIsAController, nextIsASampler, readResolve, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, setFirstMethods inherited from class org.apache.jmeter.testelement.AbstractTestElementaddPropertiesValues, 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, traversePropertyMethods inherited from class java.lang.Objectfinalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.jmeter.control.IteratingControllerupdateIterationIndexMethods inherited from interface org.apache.jmeter.testelement.TestElementcanRemove, 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
- 
Constructor Details- 
ForeachControllerpublic 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
- 
setUseSeparatorpublic void setUseSeparator(boolean b) 
- 
getUseSeparatorpublic boolean getUseSeparator()
- 
isDonepublic 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 interface- Controller
- Overrides:
- isDonein class- GenericController
- Returns:
- boolean
- See Also:
 
- 
nextDescription 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 interface- Controller
- Overrides:
- nextin class- GenericController
- Returns:
- the next sampler or null
 
- 
nextIsNullCalled byGenericController.next()whenGenericController.getCurrentElement()returnsnull. Reinitialises the controller.- Overrides:
- nextIsNullin class- GenericController
- Returns:
- null (always, for this class)
- Throws:
- NextIsNullException- when the end of the list has already been reached
 
- 
incrementLoopCountprotected void incrementLoopCount()
- 
resetLoopCountprotected void resetLoopCount()
- 
getIterCountprotected int getIterCount()- Overrides:
- getIterCountin class- GenericController
 
- 
reInitializeprotected 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 class- GenericController
 
- 
triggerEndOfLooppublic void triggerEndOfLoop()Trigger end of loop condition on controller (used by Start Next Loop feature)- Specified by:
- triggerEndOfLoopin interface- Controller
- Overrides:
- triggerEndOfLoopin class- GenericController
 
- 
initializepublic void initialize()Reset loopCount to Start index- Specified by:
- initializein interface- Controller
- Overrides:
- initializein class- GenericController
- See Also:
 
- 
startNextLooppublic void startNextLoop()Description copied from interface:IteratingControllerStart next iteration ("continue" keyword equivalent in loops)- Specified by:
- startNextLoopin interface- IteratingController
 
- 
breakLooppublic void breakLoop()Description copied from interface:IteratingControllerBreak loop ("break" keyword equivalent)- Specified by:
- breakLoopin interface- IteratingController
 
- 
iterationStartDescription copied from interface:LoopIterationListenerCalled when a loop iteration is about to start.- Specified by:
- iterationStartin interface- LoopIterationListener
- Parameters:
- iterEvent- the event
 
 
-