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
    Modifier | Constructor and Description
    --- | ---
    `protected` | `JSR223TestElement()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)

Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.