public class ForeachController extends GenericController implements Serializable, IteratingController
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)current, subControllersAndSamplers
COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS
Constructor and Description |
---|
ForeachController() |
Modifier and Type | Method and Description |
---|---|
void |
breakLoop()
Break loop ("break" keyword equivalent)
|
String |
getEndIndexAsString() |
String |
getInputValString() |
protected int |
getIterCount() |
String |
getReturnValString() |
String |
getStartIndexAsString() |
boolean |
getUseSeparator() |
protected void |
incrementLoopCount() |
void |
initialize()
Reset loopCount to Start index
|
boolean |
isDone()
Indicates whether the Controller is done delivering Samplers for the rest
of the test.
|
void |
iterationStart(LoopIterationEvent iterEvent)
Called when a loop iteration is about to start.
|
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.
|
protected void |
resetLoopCount() |
void |
setEndIndex(String endIndex) |
void |
setInputVal(String inputValue) |
void |
setReturnVal(String inputValue) |
void |
setStartIndex(String startIndex) |
void |
setUseSeparator(boolean b) |
void |
startNextLoop()
Start next iteration ("continue" keyword equivalent in loops)
|
void |
triggerEndOfLoop()
Trigger end of loop condition on controller (used by Start Next Loop feature)
|
addIterationListener, addTestElement, addTestElementOnce, currentReturnedNull, fireIterationStart, fireIterEvents, getCurrentElement, getSubControllers, incrementCurrent, incrementIterCount, initializeSubControllers, isFirst, nextIsAController, nextIsASampler, readResolve, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, setFirst
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
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
updateIterationIndex
canRemove, clear, clearTestElementChildren, clone, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse
public void setStartIndex(String startIndex)
startIndex
- Start index of looppublic String getStartIndexAsString()
public void setEndIndex(String endIndex)
endIndex
- End index of looppublic String getEndIndexAsString()
public void setInputVal(String inputValue)
public String getInputValString()
public void setReturnVal(String inputValue)
public String getReturnValString()
public void setUseSeparator(boolean b)
public boolean getUseSeparator()
public boolean isDone()
isDone
in interface Controller
isDone
in class GenericController
Controller.isDone()
public Sampler next()
GenericController
Determines the next sampler to be processed.
If GenericController.isDone()
is true
, returns null.
Gets the list element using current pointer.
If this is null
, calls GenericController.nextIsNull()
.
If the list element is a Sampler
, calls GenericController.nextIsASampler(Sampler)
,
otherwise calls GenericController.nextIsAController(Controller)
If any of the called methods throws NextIsNullException
, returns null
,
otherwise the value obtained above is returned.
next
in interface Controller
next
in class GenericController
null
protected Sampler nextIsNull() throws NextIsNullException
GenericController.next()
when GenericController.getCurrentElement()
returns null
.
Reinitialises the controller.nextIsNull
in class GenericController
NextIsNullException
- when the end of the list has already been reachedprotected void incrementLoopCount()
protected void resetLoopCount()
protected int getIterCount()
getIterCount
in class GenericController
protected void reInitialize()
reInitialize
in class GenericController
public void triggerEndOfLoop()
triggerEndOfLoop
in interface Controller
triggerEndOfLoop
in class GenericController
public void initialize()
initialize
in interface Controller
initialize
in class GenericController
GenericController.initialize()
public void startNextLoop()
IteratingController
startNextLoop
in interface IteratingController
public void breakLoop()
IteratingController
breakLoop
in interface IteratingController
public void iterationStart(LoopIterationEvent iterEvent)
LoopIterationListener
iterationStart
in interface LoopIterationListener
iterEvent
- the eventCopyright © 1998-2019 Apache Software Foundation. All Rights Reserved.