org.apache.jmeter.util

## Class BeanShellTestElement

- java.lang.Object
- - org.apache.jmeter.testelement.AbstractTestElement
  - - org.apache.jmeter.util.BeanShellTestElement

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

Direct Known Subclasses:
  BeanShellAssertion, BeanShellListener, BeanShellPostProcessor, BeanShellPreProcessor, BeanShellSampler, BeanShellTimer

    public abstract class BeanShellTestElement
    extends AbstractTestElement
    implements Serializable, Cloneable, ThreadListener, TestStateListener

See Also:
  Serialized Form

### Field Summary

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

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

### Constructor Summary

Constructors
`protected` `BeanShellTestElement()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`Object` `clone()`
`protected BeanShellInterpreter` `getBeanShellInterpreter()` Get the interpreter and set up standard script variables.
`String` `getFilename()`
`protected abstract String` `getInitFileProperty()`
`String` `getParameters()`
`String` `getScript()` Return the script (TestBean version).
`boolean` `isResetInterpreter()`
`protected Object` `processFileOrScript(BeanShellInterpreter bsh)` Process the file or script from the test element.
`protected Object` `readResolve()`
`void` `setFilename(String s)`
`void` `setParameters(String s)`
`void` `setResetInterpreter(boolean b)`
`void` `setScript(String s)` Set the script (TestBean version).
`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.
`void` `threadFinished()` Called for each thread after all samples have been processed.
`void` `threadStarted()` Called for each thread before starting sampling.

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

`addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, 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

#### BeanShellTestElement

    protected BeanShellTestElement()

### Method Detail

#### getInitFileProperty

    protected abstract String getInitFileProperty()

#### getBeanShellInterpreter

    protected BeanShellInterpreter getBeanShellInterpreter()

Get the interpreter and set up standard script variables.

Sets the following script variables:

- ctx
- Label
- prev
- props
- vars

Returns:
  the interpreter

#### readResolve

    protected Object readResolve()

#### clone

    public Object clone()

Specified by:
  `clone` in interface `TestElement`
Overrides:
  `clone` in class `AbstractTestElement`

#### processFileOrScript

    protected Object processFileOrScript(BeanShellInterpreter bsh)
                                  throws JMeterException

Process the file or script from the test element.

Sets the following script variables:

- FileName
- Parameters
- bsh.args

Parameters:
  `bsh` - the interpreter, not `null`
Returns:
  the result of the script, may be `null`
Throws:
  `JMeterException` - when working with the bsh fails

#### getScript

    public String getScript()

Return the script (TestBean version). Must be overridden for subclasses that don't implement TestBean otherwise the clone() method won't work.

Returns:
  the script to execute

#### setScript

    public void setScript(String s)

Set the script (TestBean version). Must be overridden for subclasses that don't implement TestBean otherwise the clone() method won't work.

Parameters:
  `s` - the script to execute (may be blank)

#### 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`

#### 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:
  `StandardJMeterEngine.stopTest()`

#### 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:
  `StandardJMeterEngine.stopTest()`

#### 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:
  `StandardJMeterEngine.run()`

#### 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:
  `StandardJMeterEngine.run()`

#### getParameters

    public String getParameters()

#### setParameters

    public void setParameters(String s)

#### getFilename

    public String getFilename()

#### setFilename

    public void setFilename(String s)

#### isResetInterpreter

    public boolean isResetInterpreter()

#### setResetInterpreter

    public void setResetInterpreter(boolean b)