org.apache.jmeter.util

## Class JSR223TestElement

- java.lang.Object
- - org.apache.jmeter.testelement.AbstractTestElement
  - - org.apache.jmeter.util.ScriptingTestElement
    - - org.apache.jmeter.util.JSR223TestElement

All Implemented Interfaces:
  Serializable, Cloneable, Searchable, TestElement, TestStateListener

Direct Known Subclasses:
  JSR223Assertion, JSR223Listener, JSR223PostProcessor, JSR223PreProcessor, JSR223Sampler, JSR223Timer

    public abstract class JSR223TestElement
    extends ScriptingTestElement
    implements Serializable, TestStateListener

Base class for JSR223 Test elements

See Also:
  Serialized Form

### Field Summary

### Fields inherited from class org.apache.jmeter.util.ScriptingTestElement

`DEFAULT_SCRIPT_LANGUAGE, scriptLanguage`

### Fields inherited from interface org.apache.jmeter.testelement.TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

### Constructor Summary

Constructors
`protected` `JSR223TestElement()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `compile()`
`String` `getCacheKey()`
`static ScriptEngineManager` `getInstance()`
`protected ScriptEngine` `getScriptEngine()`
`String` `getScriptLanguage()`
`protected void` `populateBindings(Bindings bindings)` Populate variables to be passed to scripts
`protected Object` `processFileOrScript(ScriptEngine scriptEngine, Bindings pBindings)` This method will run inline script or file script with special behaviour for file script: - If ScriptEngine implements Compilable script will be compiled and cached - If not if will be run
`void` `setCacheKey(String cacheKey)`
`void` `setScriptLanguage(String s)`
`void` `testEnded()` Called once for all threads after the end of a test.
`void` `testEnded(String host)` Called once for all threads after the end of a test.
`void` `testStarted()` Called just before the start of the test from the main engine thread.
`void` `testStarted(String host)` Called just before the start of the test from the main engine thread.

### Methods inherited from class org.apache.jmeter.util.ScriptingTestElement

`getFilename, getParameters, getScript, isStopCondition, setFilename, setParameters, setScript`

### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

`addPropertiesValues, addProperty, addProperty, addTestElement, 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

`removed`

### Constructor Detail

#### JSR223TestElement

    protected JSR223TestElement()

### Method Detail

#### getInstance

    public static ScriptEngineManager getInstance()

Returns:
  ScriptEngineManager singleton

#### getScriptEngine

    protected ScriptEngine getScriptEngine()
                                    throws ScriptException

Returns:
  `ScriptEngine` for language defaulting to groovy if language is not set
Throws:
  `ScriptException` - when no `ScriptEngine` could be found

#### populateBindings

    protected void populateBindings(Bindings bindings)

Populate variables to be passed to scripts

Parameters:
  `bindings` - Bindings

#### processFileOrScript

    protected Object processFileOrScript(ScriptEngine scriptEngine,
                                         Bindings pBindings)
                                  throws IOException,
                                         ScriptException

This method will run inline script or file script with special behaviour for file script: - If ScriptEngine implements Compilable script will be compiled and cached - If not if will be run

Parameters:
  `scriptEngine` - ScriptEngine
  `pBindings` - `Bindings` might be null
Returns:
  Object returned by script
Throws:
  `IOException` - when reading the script fails
  `ScriptException` - when compiling or evaluation of the script fails

#### compile

    public boolean compile()
                    throws ScriptException,
                           IOException

Returns:
  boolean true if element is not compilable or if compilation succeeds
Throws:
  `IOException` - if script is missing
  `ScriptException` - if compilation fails

#### getCacheKey

    public String getCacheKey()

Returns:
  the cacheKey

#### setCacheKey

    public void setCacheKey(String cacheKey)

Parameters:
  `cacheKey` - the cacheKey to set

#### testStarted

    public void testStarted()

Description copied from interface: `TestStateListener`

Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testStarted` in interface `TestStateListener`
See Also:
  `TestStateListener.testStarted()`

#### testStarted

    public void testStarted(String host)

Description copied from interface: `TestStateListener`

Called just before the start of the test from the main engine thread. This is before the test elements are cloned. Note that not all the test variables will have been set up at this point.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testStarted` in interface `TestStateListener`
Parameters:
  `host` - name of host
See Also:
  `TestStateListener.testStarted(java.lang.String)`

#### testEnded

    public void testEnded()

Description copied from interface: `TestStateListener`

Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testEnded` in interface `TestStateListener`
See Also:
  `TestStateListener.testEnded()`

#### testEnded

    public void testEnded(String host)

Description copied from interface: `TestStateListener`

Called once for all threads after the end of a test. This will use the same element instances as at the start of the test.

N.B. testStarted() and testEnded() are called from different threads.

Specified by:
  `testEnded` in interface `TestStateListener`
Parameters:
  `host` - name of host
See Also:
  `TestStateListener.testEnded(java.lang.String)`

#### getScriptLanguage

    public String getScriptLanguage()

#### setScriptLanguage

    public void setScriptLanguage(String s)