Package org.apache.jmeter.protocol.java.sampler

# Class JUnitSampler

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.samplers.AbstractSampler
org.apache.jmeter.protocol.java.sampler.JUnitSampler

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `ConfigMergabilityIndicator`, `Searchable`, `Sampler`, `org.apache.jmeter.testelement.TestElement`, `ThreadListener`

public class JUnitSampler extends AbstractSampler implements ThreadListener
This is a basic implementation that runs a single test method of a JUnit test case. The current implementation will use the string constructor first. If the test class does not declare a string constructor, the sampler will try empty constructor.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement

  `org.apache.jmeter.testelement.TestElement.Companion`

- ## Field Summary

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

  `COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JUnitSampler()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `getAppendError()`
  If append error is not set, by default it is set to false, which means users have to explicitly set the sampler to append the assert errors.
  `boolean`
  `getAppendException()`
  If append exception is not set, by default it is set to `false`.
  `String`
  `getClassname()`
  Gets the Classname attribute of the JavaConfig object
  `String`
  `getConstructorString()`
  `boolean`
  `getCreateOneInstancePerSample()`
  `boolean`
  `getDoNotSetUpTearDown()`
  if the sample shouldn't call setup/teardown, the method returns true.
  `String`
  `getError()`
  `String`
  `getErrorCode()`
  `String`
  `getFailure()`
  `String`
  `getFailureCode()`
  `String`
  `getFilterString()`
  `boolean`
  `getJunit4()`
  Check if JUnit4 (annotations) are to be used instead of the JUnit3 style (TestClass and specific method names)
  `String`
  `getMethod()`
  `String`
  `getSuccess()`
  `String`
  `getSuccessCode()`
  `SampleResult`
  `sample(Entry entry)`
  Obtains statistics about the given Entry, and packages the information into a SampleResult.
  `void`
  `setAppendError(boolean error)`
  Set whether to append errors or not.
  `void`
  `setAppendException(boolean exc)`
  Set whether to append exceptions or not.
  `void`
  `setClassname(String className)`
  Sets the Classname attribute of the JavaConfig object
  `void`
  `setConstructorString(String constr)`
  Set the string label used to create an instance of the test with the string constructor.
  `void`
  `setCreateOneInstancePerSample(boolean createOneInstancePerSample)`
  `void`
  `setDoNotSetUpTearDown(boolean setup)`
  set the setup/teardown option
  `void`
  `setError(String error)`
  provide a descriptive error for the test method.
  `void`
  `setErrorCode(String code)`
  Provide an unique error code for when the test does not pass the assert test.
  `void`
  `setFailure(String fail)`
  set the failure message
  `void`
  `setFailureCode(String code)`
  Provide some unique code to denote a type of failure
  `void`
  `setFilterString(String text)`
  set the filter string in comma separated format
  `void`
  `setJunit4(boolean junit4)`
  Set whether to use JUnit4 style or not.
  `void`
  `setMethod(String methodName)`
  Method should add the JUnit testXXX method to the list at the end, since the sequence matters.
  `void`
  `setSuccess(String success)`
  set the success message
  `void`
  `setSuccessCode(String code)`
  Set the success code.
  `void`
  `threadFinished()`
  Called for each thread after all samples have been processed.
  `void`
  `threadStarted()`
  Set up all variables that don't change between samples.

  ### Methods inherited from class org.apache.jmeter.samplers.AbstractSampler

  `applies`

  ### 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, getPropertyOrNull, 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

  `addTestElement, canRemove, clear, clearTestElementChildren, clone, get, get, get, get, get, get, get, get, get, getComment, getName, getOrCreate, getOrCreate, getOrNull, getOrNull, getOrNull, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getPropertyOrNull, getProps, getSchema, getString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, removeProperty, set, set, set, set, set, set, set, set, set, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

- ## Constructor Details

  - ### JUnitSampler

    public JUnitSampler()

- ## Method Details

  - ### setClassname

    public void setClassname(String className)
    Sets the Classname attribute of the JavaConfig object
    Parameters:
      `className` - the new Classname value

  - ### getClassname

    public String getClassname()
    Gets the Classname attribute of the JavaConfig object
    Returns:
      the Classname value

  - ### setConstructorString

    public void setConstructorString(String constr)
    Set the string label used to create an instance of the test with the string constructor.
    Parameters:
      `constr` - the string passed to the constructor

  - ### getConstructorString

    public String getConstructorString()
    Returns:
      the string passed to the string constructor

  - ### getMethod

    public String getMethod()
    Returns:
      the name of the method to test

  - ### setMethod

    public void setMethod(String methodName)
    Method should add the JUnit testXXX method to the list at the end, since the sequence matters.
    Parameters:
      `methodName` - name of the method to test

  - ### getSuccess

    public String getSuccess()
    Returns:
      the success message

  - ### setSuccess

    public void setSuccess(String success)
    set the success message
    Parameters:
      `success` - message to be used for success

  - ### getSuccessCode

    public String getSuccessCode()
    Returns:
      the success code defined by the user

  - ### setSuccessCode

    public void setSuccessCode(String code)
    Set the success code. The success code should be unique.
    Parameters:
      `code` - unique success code

  - ### getFailure

    public String getFailure()
    Returns:
      the failure message

  - ### setFailure

    public void setFailure(String fail)
    set the failure message
    Parameters:
      `fail` - the failure message

  - ### getFailureCode

    public String getFailureCode()
    Returns:
      The failure code that is used by other components

  - ### setFailureCode

    public void setFailureCode(String code)
    Provide some unique code to denote a type of failure
    Parameters:
      `code` - unique code to denote the type of failure

  - ### getError

    public String getError()
    Returns:
      the descriptive error for the test

  - ### setError

    public void setError(String error)
    provide a descriptive error for the test method. For a description of the difference between failure and error, please refer to the junit faq
    Parameters:
      `error` - the description of the error

  - ### getErrorCode

    public String getErrorCode()
    Returns:
      the error code for the test method. It should be an unique error code.

  - ### setErrorCode

    public void setErrorCode(String code)
    Provide an unique error code for when the test does not pass the assert test.
    Parameters:
      `code` - unique error code

  - ### getFilterString

    public String getFilterString()
    Returns:
      the comma separated string for the filter

  - ### setFilterString

    public void setFilterString(String text)
    set the filter string in comma separated format
    Parameters:
      `text` - comma separated filter

  - ### getDoNotSetUpTearDown

    public boolean getDoNotSetUpTearDown()
    if the sample shouldn't call setup/teardown, the method returns true. It's meant for onetimesetup and onetimeteardown.
    Returns:
      flag whether setup/teardown methods should not be called

  - ### setDoNotSetUpTearDown

    public void setDoNotSetUpTearDown(boolean setup)
    set the setup/teardown option
    Parameters:
      `setup` - flag whether the setup/teardown methods should not be called

  - ### getAppendError

    public boolean getAppendError()
    If append error is not set, by default it is set to false, which means users have to explicitly set the sampler to append the assert errors. Because of how junit works, there should only be one error
    Returns:
      flag whether errors should be appended

  - ### setAppendError

    public void setAppendError(boolean error)
    Set whether to append errors or not.
    Parameters:
      `error` - the setting to apply

  - ### getAppendException

    public boolean getAppendException()
    If append exception is not set, by default it is set to `false`. Users have to explicitly set it to `true` to see the exceptions in the result tree.
    Returns:
      flag whether exceptions should be appended to the result tree

  - ### setAppendException

    public void setAppendException(boolean exc)
    Set whether to append exceptions or not.
    Parameters:
      `exc` - the setting to apply.

  - ### getJunit4

    public boolean getJunit4()
    Check if JUnit4 (annotations) are to be used instead of the JUnit3 style (TestClass and specific method names)
    Returns:
      true if JUnit4 (annotations) are to be used. Default is false.

  - ### setJunit4

    public void setJunit4(boolean junit4)
    Set whether to use JUnit4 style or not.
    Parameters:
      `junit4` - true if JUnit4 style is to be used.

  - ### sample

    public SampleResult sample(Entry entry)
    Obtains statistics about the given Entry, and packages the information into a SampleResult.
    Specified by:
      `sample` in interface `Sampler`
    Parameters:
      `entry` - the Entry (TODO seems to be unused)
    Returns:
      information about the sample

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

  - ### threadStarted

    public void threadStarted()
    Set up all variables that don't change between samples.
    Specified by:
      `threadStarted` in interface `ThreadListener`

  - ### setCreateOneInstancePerSample

    public void setCreateOneInstancePerSample(boolean createOneInstancePerSample)
    Parameters:
      `createOneInstancePerSample` - flag whether a new instance for each call should be created

  - ### getCreateOneInstancePerSample

    public boolean getCreateOneInstancePerSample()
    Returns:
      boolean create New Instance For Each Call