# Class TestPlan

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.testelement.TestPlan

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

public class TestPlan extends AbstractTestElement implements Serializable, TestStateListener

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from interface TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

## Constructor Summary

Constructors
Constructor
Description
`TestPlan()`
`TestPlan(String name)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addParameter(String name, String value)`
`void`
`addTestElement(TestElement tg)`
`void`
`addThreadGroup(AbstractThreadGroup group)`
Adds a feature to the AbstractThreadGroup attribute of the TestPlan object.
`Arguments`
`getArguments()`
`String`
`getBasedir()`
`static boolean`
`getFunctionalMode()`
Gets the static copy of the functional mode
`String`
`getTestPlanClasspath()`
Returns the classpath
`String[]`
`getTestPlanClasspathArray()`
`Map<String,String>`
`getUserDefinedVariables()`
`JMeterProperty`
`getUserDefinedVariablesAsProperty()`
`boolean`
`isFunctionalMode()`
Fetches the functional mode property
`boolean`
`isSerialized()`
Fetch the serialize threadgroups property
`boolean`
`isTearDownOnShutdown()`
`void`
`prepareForPreCompile()`
`void`
`setBasedir(String b)`
`void`
`setFunctionalMode(boolean funcMode)`
`void`
`setSerialized(boolean serializeTGs)`
`void`
`setTearDownOnShutdown(boolean tearDown)`
`void`
`setTestPlanClasspath(String text)`
Set the classpath for the test plan.
`void`
`setTestPlanClasspathArray(String[] text)`
`void`
`setUserDefinedVariables(Arguments vars)`
`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 AbstractTestElement

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

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TestPlan

public TestPlan()

### TestPlan

public TestPlan(String name)

## Method Details

### prepareForPreCompile

public void prepareForPreCompile()

### isFunctionalMode

public boolean isFunctionalMode()
Fetches the functional mode property

Returns:
  functional mode

### setUserDefinedVariables

public void setUserDefinedVariables(Arguments vars)

### getUserDefinedVariablesAsProperty

public JMeterProperty getUserDefinedVariablesAsProperty()

### getBasedir

public String getBasedir()

### setBasedir

public void setBasedir(String b)

### getArguments

public Arguments getArguments()

### getUserDefinedVariables

public Map<String,String> getUserDefinedVariables()

### setFunctionalMode

public void setFunctionalMode(boolean funcMode)

### getFunctionalMode

public static boolean getFunctionalMode()
Gets the static copy of the functional mode

Returns:
  mode

### setSerialized

public void setSerialized(boolean serializeTGs)

### setTearDownOnShutdown

public void setTearDownOnShutdown(boolean tearDown)

### isTearDownOnShutdown

public boolean isTearDownOnShutdown()

### setTestPlanClasspath

public void setTestPlanClasspath(String text)
Set the classpath for the test plan. If the classpath is made up from more then one path, the parts must be separated with `CLASSPATH_SEPARATOR`.

Parameters:
  `text` - the classpath to be set

### setTestPlanClasspathArray

public void setTestPlanClasspathArray(String[] text)

### getTestPlanClasspathArray

public String[] getTestPlanClasspathArray()

### getTestPlanClasspath

public String getTestPlanClasspath()
Returns the classpath

Returns:
  classpath

### isSerialized

public boolean isSerialized()
Fetch the serialize threadgroups property

Returns:
  serialized setting

### addParameter

public void addParameter(String name, String value)

### addTestElement

public void addTestElement(TestElement tg)
Description copied from class: `AbstractTestElement`

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

### addThreadGroup

public void addThreadGroup(AbstractThreadGroup group)
Adds a feature to the AbstractThreadGroup attribute of the TestPlan object.

Parameters:
  `group` - the feature to be added to the AbstractThreadGroup attribute

### testEnded

public void testEnded()

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)

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()

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)

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()`