Class IfController

All Implemented Interfaces:
Serializable, Cloneable, Controller, Searchable, org.apache.jmeter.testelement.TestElement, ThreadListener, TestCompilerHelper

public class IfController extends GenericController implements Serializable, ThreadListener
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:
  • Constructor Details

    • IfController

      public IfController()
      constructor
    • IfController

      public IfController(String condition)
      constructor
      Parameters:
      condition - The condition for this controller
  • Method Details

    • getSchema

      public org.apache.jmeter.control.IfControllerSchema getSchema()
      Specified by:
      getSchema in interface org.apache.jmeter.testelement.TestElement
      Overrides:
      getSchema in class GenericController
    • getProps

      public org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends IfController,? extends org.apache.jmeter.control.IfControllerSchema> getProps()
      Specified by:
      getProps in interface org.apache.jmeter.testelement.TestElement
      Overrides:
      getProps in class GenericController
    • 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()
      Description copied from interface: Controller
      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:
      isDone in interface Controller
      Overrides:
      isDone in class GenericController
      Returns:
      boolean
      See Also:
    • next

      public Sampler next()
      Description copied from class: 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.

      Specified by:
      next in interface Controller
      Overrides:
      next in class GenericController
      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:
      triggerEndOfLoop in interface Controller
      Overrides:
      triggerEndOfLoop in class GenericController
    • 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: ThreadListener
      Called 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:
      threadStarted in interface ThreadListener
    • threadFinished

      public void threadFinished()
      Description copied from interface: ThreadListener
      Called for each thread after all samples have been processed. See org.apache.jmeter.threads.JMeterThread#threadFinished(org.apache.jmeter.engine.event.LoopIterationListener)
      Specified by:
      threadFinished in interface ThreadListener