Interface JavaSamplerClient

  • All Implemented Interfaces:

    
    public interface JavaSamplerClient
    
                        

    This interface defines the interactions between the JavaSampler and external Java programs which can be executed by JMeter. Any Java class which wants to be executed as a JMeter test must implement this interface (either directly or indirectly through AbstractJavaSamplerClient).

    JMeter will create one instance of a JavaSamplerClient implementation for each user/thread in the test. Additional instances may be created for internal use by JMeter (for example, to find out what parameters are supported by the client).

    When the test is started, setupTest() will be called on each thread's JavaSamplerClient instance to initialize the client. Then runTest() will be called for each iteration of the test. Finally, teardownTest() will be called to allow the client to do any necessary clean-up.

    The JMeter JavaSampler GUI allows a list of parameters to be defined for the test. These are passed to the various test methods through the JavaSamplerContext. A list of default parameters can be defined through the getDefaultParameters() method. These parameters and any default values associated with them will be shown in the GUI. Users can add other parameters as well.

    When possible, Java tests should extend AbstractJavaSamplerClient rather than implementing JavaSamplerClient directly. This should protect your tests from future changes to the interface. While it may be necessary to make changes to the JavaSamplerClient interface from time to time (therefore requiring changes to any implementations of this interface), we intend to make this abstract class provide reasonable default implementations of any new methods so that subclasses do not necessarily need to be updated for new versions. Implementing JavaSamplerClient directly will continue to be supported for cases where extending this class is not possible (for example, when the client class is already a subclass of some other class).

    See org.apache.jmeter.protocol.java.test.SleepTest for an example of how to implement this interface.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      abstract void setupTest(JavaSamplerContext context) Do any initialization required by this client.
      abstract SampleResult runTest(JavaSamplerContext context) Perform a single sample for each iteration.
      abstract void teardownTest(JavaSamplerContext context) Do any clean-up required by this test at the end of a test run.
      abstract Arguments getDefaultParameters() Provide a list of parameters which this test supports.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

    • Method Detail

      • setupTest

         abstract void setupTest(JavaSamplerContext context)

        Do any initialization required by this client. It is generally recommended to do any initialization such as getting parameter values in the setupTest method rather than the runTest method in order to add as little overhead as possible to the test.

        Parameters:
        context - the context to run with.
      • runTest

         abstract SampleResult runTest(JavaSamplerContext context)

        Perform a single sample for each iteration. This method returns a SampleResult object. SampleResult has many fields which can be used. At a minimum, the test should use SampleResult.sampleStart and SampleResult.sampleEndto set the time that the test required to execute. It is also a good idea to set the sampleLabel and the successful flag.

        Parameters:
        context - the context to run with.
      • teardownTest

         abstract void teardownTest(JavaSamplerContext context)

        Do any clean-up required by this test at the end of a test run.

        Parameters:
        context - the context to run with.
      • getDefaultParameters

         abstract Arguments getDefaultParameters()

        Provide a list of parameters which this test supports. Any parameter names and associated values returned by this method will appear in the GUI by default so the user doesn't have to remember the exact names. The user can add other parameters which are not listed here. If this method returns null then no parameters will be listed. If the value for some parameter is null then that parameter will be listed in the GUI with an empty value.