Class JSR223TestElement

All Implemented Interfaces:
Serializable, Cloneable, Searchable, org.apache.jmeter.testelement.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:
  • Constructor Details

    • JSR223TestElement

      protected JSR223TestElement()
  • Method Details

    • 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:
    • 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:
    • 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:
    • 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:
    • getScriptLanguage

      public String getScriptLanguage()
    • setScriptLanguage

      public void setScriptLanguage(String s)