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
,TestElement
,TestCompilerHelper
public class IfController extends GenericController implements Serializable
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:
- Serialized Form
-
-
Field Summary
-
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 IfController()
constructorIfController(String condition)
constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getCondition()
Condition Accessor - this is gonna be like${count} < 10
boolean
isDone()
This is overriding the parent method.boolean
isEvaluateAll()
boolean
isUseExpression()
Sampler
next()
Determines the next sampler to be processed.void
setCondition(String condition)
Condition Accessor - this is gonna be like${count} < 10
void
setEvaluateAll(boolean b)
void
setUseExpression(boolean selected)
void
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, getIterCount, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isFirst, nextIsAController, nextIsASampler, nextIsNull, readResolve, reInitialize, reInitializeSubController, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, 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
-
-
-
-
Constructor Detail
-
IfController
public IfController()
constructor
-
IfController
public IfController(String condition)
constructor- Parameters:
condition
- The condition for this controller
-
-
Method Detail
-
setCondition
public void setCondition(String condition)
Condition Accessor - this is gonna be like${count} < 10
- Parameters:
condition
- The condition for this controller
-
getCondition
public String getCondition()
Condition Accessor - this is gonna be like${count} < 10
- Returns:
- the condition associated with this controller
-
isDone
public boolean isDone()
This is overriding the parent method. IsDone indicates whether the termination condition is reached. I.e. if the condition evaluates to False - then isDone() returns TRUE- Specified by:
isDone
in interfaceController
- Overrides:
isDone
in classGenericController
- Returns:
- boolean
- See Also:
Controller.isDone()
-
next
public Sampler next()
Description copied from class:GenericController
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
- See Also:
Controller.next()
-
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
-
isEvaluateAll
public boolean isEvaluateAll()
-
setEvaluateAll
public void setEvaluateAll(boolean b)
-
isUseExpression
public boolean isUseExpression()
-
setUseExpression
public void setUseExpression(boolean selected)
-
-