Package org.apache.jmeter.control
Class IfController
java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.IfController
- All Implemented Interfaces:
Serializable,Cloneable,Controller,Searchable,org.apache.jmeter.testelement.TestElement,ThreadListener,TestCompilerHelper
This is a Conditional Controller; it will execute the set of statements
(samplers/controllers, etc) while the 'condition' is true.
In a programming world - this is equivalent of :
if (condition) {
statements ....
}
In JMeter you may have :
Thread-Group (set to loop a number of times or indefinitely,
... Samplers ... (e.g. Counter )
... Other Controllers ....
... IfController ( condition set to something like - ${counter} < 10)
... statements to perform if condition is true
...
... Other Controllers /Samplers }
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement
org.apache.jmeter.testelement.TestElement.Companion -
Field Summary
Fields inherited from class org.apache.jmeter.control.GenericController
current, subControllersAndSamplersFields inherited from interface org.apache.jmeter.testelement.TestElement
COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCondition Accessor - this is gonna be like${count} < 10org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends IfController,? extends org.apache.jmeter.control.IfControllerSchema> getProps()org.apache.jmeter.control.IfControllerSchemabooleanisDone()Indicates whether the Controller is done delivering Samplers for the rest of the test.booleanbooleannext()Determines the next sampler to be processed.voidsetCondition(String condition) Condition Accessor - this is gonna be like${count} < 10voidsetEvaluateAll(boolean b) voidsetUseExpression(boolean selected) voidCalled for each thread after all samples have been processed.voidCalled for each thread before starting sampling.voidTrigger 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, getIterCount, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isFirst, nextIsAController, nextIsASampler, nextIsNull, readResolve, reInitialize, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, setFirstMethods 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, 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.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.jmeter.testelement.TestElement
canRemove, 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
-
IfController
public IfController()constructor -
IfController
constructor- Parameters:
condition- The condition for this controller
-
-
Method Details
-
getSchema
public org.apache.jmeter.control.IfControllerSchema getSchema()- Specified by:
getSchemain interfaceorg.apache.jmeter.testelement.TestElement- Overrides:
getSchemain classGenericController
-
getProps
public org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends IfController,? extends org.apache.jmeter.control.IfControllerSchema> getProps()- Specified by:
getPropsin interfaceorg.apache.jmeter.testelement.TestElement- Overrides:
getPropsin classGenericController
-
setCondition
Condition Accessor - this is gonna be like${count} < 10- Parameters:
condition- The condition for this controller
-
getCondition
Condition Accessor - this is gonna be like${count} < 10- Returns:
- the condition associated with this controller
-
isDone
public boolean isDone()Description copied from interface:ControllerIndicates 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 - See Also:
-
triggerEndOfLoop
public void triggerEndOfLoop()Trigger end of loop condition on controller (used by Start Next Loop feature)- Specified by:
triggerEndOfLoopin interfaceController- Overrides:
triggerEndOfLoopin classGenericController
-
isEvaluateAll
public boolean isEvaluateAll() -
setEvaluateAll
public void setEvaluateAll(boolean b) -
isUseExpression
public boolean isUseExpression() -
setUseExpression
public void setUseExpression(boolean selected) -
threadStarted
public void threadStarted()Description copied from interface:ThreadListenerCalled for each thread before starting sampling. WARNING: this is called before any Config test elements are processed, so any properties they define will not have been merged in yet. See org.apache.jmeter.threads.JMeterThread#threadStarted()- Specified by:
threadStartedin interfaceThreadListener
-
threadFinished
public void threadFinished()Description copied from interface:ThreadListenerCalled for each thread after all samples have been processed. See org.apache.jmeter.threads.JMeterThread#threadFinished(org.apache.jmeter.engine.event.LoopIterationListener)- Specified by:
threadFinishedin interfaceThreadListener
-