org.apache.jmeter.testelement

## Interface TestElement

All Superinterfaces:
  Cloneable

All Known Subinterfaces:
  Controller, Sampler

All Known Implementing Classes:
  AbstractBoltTestElement, AbstractJDBCProcessor, AbstractJDBCTestElement, AbstractListenerElement, AbstractSampler, AbstractScopedAssertion, AbstractScopedTestElement, AbstractTestElement, AbstractThreadGroup, AccessLogSampler, AjpSampler, AnchorModifier, Argument, Arguments, AuthManager, Authorization, BackendListener, BaseJMSSampler, BeanShellAssertion, BeanShellListener, BeanShellPostProcessor, BeanShellPreProcessor, BeanShellSampler, BeanShellTestElement, BeanShellTimer, BoltConnectionElement, BoltSampler, BoundaryExtractor, BSFAssertion, BSFListener, BSFPostProcessor, BSFPreProcessor, BSFSampler, BSFTestElement, BSFTimer, CacheManager, CompareAssertion, ConfigTestElement, ConstantThroughputTimer, ConstantTimer, Cookie, CookieManager, CounterConfig, CriticalSectionController, CSVDataSet, DataSourceElement, DebugPostProcessor, DebugSampler, DNSCacheManager, DurationAssertion, ForeachController, FTPSampler, GaussianRandomTimer, GenericController, Header, HeaderManager, HTMLAssertion, HtmlExtractor, HTTPArgument, HTTPFileArg, HTTPFileArgs, HttpMirrorControl, HTTPSampler, HTTPSamplerBase, HTTPSamplerProxy, IfController, IncludeController, InterleaveControl, JavaConfig, JavaSampler, JDBCPostProcessor, JDBCPreProcessor, JDBCSampler, JMESPathAssertion, JMESPathExtractor, JMSProperties, JMSProperty, JMSSampler, JSONPathAssertion, JSONPostProcessor, JSR223Assertion, JSR223Listener, JSR223PostProcessor, JSR223PreProcessor, JSR223Sampler, JSR223TestElement, JSR223Timer, JUnitSampler, KeystoreConfig, LDAPArgument, LDAPArguments, LDAPExtSampler, LDAPSampler, LoginConfig, LoopController, MailerModel, MailerResultCollector, MailReaderSampler, MD5HexAssertion, ModuleController, MongoScriptSampler, MongoSourceElement, OnceOnlyController, OnErrorTestElement, PoissonRandomTimer, PostThreadGroup, PreciseThroughputTimer, ProxyControl, PublisherSampler, RandomController, RandomOrderController, RandomTimer, RandomVariableConfig, RecordingController, RegexExtractor, RegExUserParameters, RemoteListenerWrapper, RemoteSampleListenerWrapper, RemoteTestListenerWrapper, RemoteThreadsListenerWrapper, ResponseAssertion, ResultAction, ResultCollector, ResultSaver, RunTime, SampleTimeout, ScriptingTestElement, SetupThreadGroup, SizeAssertion, SMIMEAssertionTestElement, SmtpSampler, StaticHost, SubscriberSampler, SubstitutionElement, Summariser, SwitchController, SyncTimer, SystemSampler, TCPSampler, TestAction, TestFragmentController, TestPlan, ThreadGroup, ThroughputController, TransactionController, TransactionSampler, UniformRandomTimer, URLRewritingModifier, UserParameters, WhileController, WorkBench, XMLAssertion, XMLSchemaAssertion, XPath2Assertion, XPath2Extractor, XPathAssertion, XPathExtractor

    public interface TestElement
    extends Cloneable

### Field Summary

Fields
`static String` `COMMENTS`
`static String` `ENABLED`
`static String` `GUI_CLASS`
`static String` `NAME`
`static String` `TEST_CLASS`

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`void` `addTestElement(TestElement child)`
`boolean` `canRemove()` Called by Remove to determine if it is safe to remove the element.
`void` `clear()` Clear the TestElement of all data.
`void` `clearTestElementChildren()` This method should clear any test element properties that are merged by `addTestElement(TestElement)`.
`Object` `clone()`
`String` `getComment()` Returns comment associated with this element.
`String` `getName()` Get the name of this test element
`JMeterProperty` `getProperty(String propName)` Given the name of the property, returns the appropriate property from JMeter.
`boolean` `getPropertyAsBoolean(String key)` Return a property as a boolean value.
`boolean` `getPropertyAsBoolean(String key, boolean defaultValue)` Return a property as a boolean value or a default value if no property could be found.
`double` `getPropertyAsDouble(String key)` Return a property as a double value.
`float` `getPropertyAsFloat(String key)` Return a property as a float value.
`int` `getPropertyAsInt(String key)` Return a property as an int value.
`int` `getPropertyAsInt(String key, int defaultValue)` Return a property as an int value or a default value if no property could be found.
`long` `getPropertyAsLong(String key)` Return a property as a long value.
`long` `getPropertyAsLong(String key, long defaultValue)` Return a property as a long value or a default value if no property could be found.
`String` `getPropertyAsString(String key)` Return a property as a string value.
`String` `getPropertyAsString(String key, String defaultValue)` Return a property as an string value or a default value if no property could be found.
`JMeterContext` `getThreadContext()`
`String` `getThreadName()` Returns the threadName.
`boolean` `isEnabled()` Check if ENABLED property is present and true ; defaults to true
`boolean` `isRunningVersion()` Returns true or false whether the element is the running version.
`boolean` `isTemporary(JMeterProperty property)` Test whether a given property is only a temporary resident of the TestElement
`PropertyIterator` `propertyIterator()` Get a Property Iterator for the TestElements properties.
`void` `recoverRunningVersion()` Tells the test element to return to the state it was in when setRunningVersion(true) was called.
`default void` `removed()` Called when the test element is removed from the test plan.
`void` `removeProperty(String key)` Remove property stored under the `key`
`void` `setComment(String comment)` Associates a comment with this element
`void` `setEnabled(boolean enabled)` Set the enabled status of the test element
`void` `setName(String name)` Returns name of this element.
`void` `setProperty(JMeterProperty property)` Sets and overwrites a property in the TestElement.
`void` `setProperty(String key, boolean value)`
`void` `setProperty(String key, boolean value, boolean dflt)`
`void` `setProperty(String key, int value)`
`void` `setProperty(String key, int value, int dflt)`
`void` `setProperty(String name, long value)`
`void` `setProperty(String name, long value, long dflt)`
`void` `setProperty(String key, String value)`
`void` `setProperty(String key, String value, String dflt)`
`void` `setRunningVersion(boolean run)` Make the test element the running version, or make it no longer the running version.
`void` `setTemporary(JMeterProperty property)` Indicate that the given property should be only a temporary property in the TestElement
`void` `setThreadContext(JMeterContext threadContext)`
`void` `setThreadName(String threadName)` Configures thread name.
`void` `traverse(TestElementTraverser traverser)` Convenient way to traverse a test element.

### Field Detail

#### NAME

    static final String NAME

See Also:
  Constant Field Values

#### GUI_CLASS

    static final String GUI_CLASS

See Also:
  Constant Field Values

#### ENABLED

    static final String ENABLED

See Also:
  Constant Field Values

#### TEST_CLASS

    static final String TEST_CLASS

See Also:
  Constant Field Values

#### COMMENTS

    static final String COMMENTS

See Also:
  Constant Field Values

### Method Detail

#### addTestElement

    void addTestElement(TestElement child)

#### clearTestElementChildren

    void clearTestElementChildren()

This method should clear any test element properties that are merged by `addTestElement(TestElement)`.

#### setProperty

    void setProperty(String key,
                     String value)

#### setProperty

    void setProperty(String key,
                     String value,
                     String dflt)

#### setProperty

    void setProperty(String key,
                     boolean value)

#### setProperty

    void setProperty(String key,
                     boolean value,
                     boolean dflt)

#### setProperty

    void setProperty(String key,
                     int value)

#### setProperty

    void setProperty(String key,
                     int value,
                     int dflt)

#### setProperty

    void setProperty(String name,
                     long value)

#### setProperty

    void setProperty(String name,
                     long value,
                     long dflt)

#### isEnabled

    boolean isEnabled()

Check if ENABLED property is present and true ; defaults to true

Returns:
  true if element is enabled

#### setEnabled

    void setEnabled(boolean enabled)

Set the enabled status of the test element

Parameters:
  `enabled` - the status to set

#### isRunningVersion

    boolean isRunningVersion()

Returns true or false whether the element is the running version.

Returns:
  `true` if the element is the running version

#### isTemporary

    boolean isTemporary(JMeterProperty property)

Test whether a given property is only a temporary resident of the TestElement

Parameters:
  `property` - the property to be tested
Returns:
  `true` if property is temporary

#### setTemporary

    void setTemporary(JMeterProperty property)

Indicate that the given property should be only a temporary property in the TestElement

Parameters:
  `property` - void

#### getPropertyAsBoolean

    boolean getPropertyAsBoolean(String key)

Return a property as a boolean value.

Parameters:
  `key` - the name of the property to get
Returns:
  the value of the property

#### getPropertyAsBoolean

    boolean getPropertyAsBoolean(String key,
                                 boolean defaultValue)

Return a property as a boolean value or a default value if no property could be found.

Parameters:
  `key` - the name of the property to get
  `defaultValue` - the default value to use
Returns:
  the value of the property, or `defaultValue` if no property could be found

#### getPropertyAsLong

    long getPropertyAsLong(String key)

Return a property as a long value.

Parameters:
  `key` - the name of the property to get
Returns:
  the value of the property

#### getPropertyAsLong

    long getPropertyAsLong(String key,
                           long defaultValue)

Return a property as a long value or a default value if no property could be found.

Parameters:
  `key` - the name of the property to get
  `defaultValue` - the default value to use
Returns:
  the value of the property, or `defaultValue` if no property could be found

#### getPropertyAsInt

    int getPropertyAsInt(String key)

Return a property as an int value.

Parameters:
  `key` - the name of the property to get
Returns:
  the value of the property

#### getPropertyAsInt

    int getPropertyAsInt(String key,
                         int defaultValue)

Return a property as an int value or a default value if no property could be found.

Parameters:
  `key` - the name of the property to get
  `defaultValue` - the default value to use
Returns:
  the value of the property, or `defaultValue` if no property could be found

#### getPropertyAsFloat

    float getPropertyAsFloat(String key)

Return a property as a float value.

Parameters:
  `key` - the name of the property to get
Returns:
  the value of the property

#### getPropertyAsDouble

    double getPropertyAsDouble(String key)

Return a property as a double value.

Parameters:
  `key` - the name of the property to get
Returns:
  the value of the property

#### setRunningVersion

    void setRunningVersion(boolean run)

Make the test element the running version, or make it no longer the running version. This tells the test element that it's current state must be retrievable by a call to recoverRunningVersion(). It is kind of like making the TestElement Read- Only, but not as strict. Changes can be made and the element can be modified, but the state of the element at the time of the call to setRunningVersion() must be recoverable.

Parameters:
  `run` - flag whether this element should be the running version

#### recoverRunningVersion

    void recoverRunningVersion()

Tells the test element to return to the state it was in when setRunningVersion(true) was called.

#### clear

    void clear()

Clear the TestElement of all data.

#### getPropertyAsString

    String getPropertyAsString(String key)

Return a property as a string value.

Parameters:
  `key` - the name of the property to get
Returns:
  the value of the property

#### getPropertyAsString

    String getPropertyAsString(String key,
                               String defaultValue)

Return a property as an string value or a default value if no property could be found.

Parameters:
  `key` - the name of the property to get
  `defaultValue` - the default value to use
Returns:
  the value of the property, or `defaultValue` if no property could be found

#### setProperty

    void setProperty(JMeterProperty property)

Sets and overwrites a property in the TestElement. This call will be ignored if the TestElement is currently a "running version".

Parameters:
  `property` - the property to be set

#### getProperty

    JMeterProperty getProperty(String propName)

Given the name of the property, returns the appropriate property from JMeter. If it is null, a NullProperty object will be returned.

Parameters:
  `propName` - the name of the property to get
Returns:
  `JMeterProperty` stored under the name, or `NullProperty` if no property can be found

#### propertyIterator

    PropertyIterator propertyIterator()

Get a Property Iterator for the TestElements properties.

Returns:
  PropertyIterator

#### removeProperty

    void removeProperty(String key)

Remove property stored under the `key`

Parameters:
  `key` - name of the property to be removed

#### clone

    Object clone()

#### traverse

    void traverse(TestElementTraverser traverser)

Convenient way to traverse a test element.

Parameters:
  `traverser` - The traverser that is notified of the contained elements

#### getThreadContext

    JMeterContext getThreadContext()

Returns:
  Returns the threadContext.

#### setThreadContext

    void setThreadContext(JMeterContext threadContext)

Parameters:
  `threadContext` - The threadContext to set.

#### getThreadName

    String getThreadName()

Returns the threadName.

Returns:
  the threadName.

#### setThreadName

    void setThreadName(String threadName)

Configures thread name.

Parameters:
  `threadName` - the threadName to set.

#### canRemove

    boolean canRemove()

Called by Remove to determine if it is safe to remove the element. The element can either clean itself up, and return true, or the element can return false.

Returns:
  true if safe to remove the element

#### getName

    String getName()

Get the name of this test element

Returns:
  name of this element

#### setName

    void setName(String name)

Returns name of this element.

Parameters:
  `name` - of this element

#### getComment

    String getComment()

Returns comment associated with this element.

Returns:
  comment associated with this element

#### setComment

    void setComment(String comment)

Associates a comment with this element

Parameters:
  `comment` - to be associated

#### removed

    default void removed()

Called when the test element is removed from the test plan. Must not throw any exception