Package org.apache.jmeter.functions

# Class TimeFunction

java.lang.Object
org.apache.jmeter.functions.AbstractFunction
org.apache.jmeter.functions.TimeFunction

All Implemented Interfaces:
  `Function`, `TestStateListener`

@AutoService(Function.class) public class TimeFunction extends AbstractFunction implements TestStateListener
__time() function - returns the current time in milliseconds

Since:
  2.2

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TimeFunction()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `execute(SampleResult previousResult, Sampler currentSampler)`
  N.B.
  `List<String>`
  `getArgumentDesc()`
  Return a list of strings briefly describing each parameter your function takes.
  `String`
  `getReferenceKey()`
  Return the name of your function.
  `void`
  `setParameters(Collection<CompoundVariable> parameters)`
  Note: This is always called even if no parameters are provided (versions of JMeter after 2.3.1)
  `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 org.apache.jmeter.functions.AbstractFunction

  `addVariableValue, checkMinParameterCount, checkParameterCount, checkParameterCount, execute, getVariables`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TimeFunction

    public TimeFunction()

- ## Method Details

  - ### execute

    public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException

    N.B. execute() should be synchronized if function is operating with non-thread-safe objects (e.g. operates with files).

    JMeter ensures setParameters() happens-before execute(): setParameters is executed in main thread, and worker threads are started after that.
    Specified by:
      `execute` in interface `Function`
    Specified by:
      `execute` in class `AbstractFunction`
    Parameters:
      `previousResult` - The previous `SampleResult`
      `currentSampler` - The current `Sampler`
    Returns:
      The replacement value, which was generated by the function
    Throws:
      `InvalidVariableException` - - when the variables for the function call can't be evaluated
    See Also:
      - `Function.execute(SampleResult, Sampler)`

  - ### setParameters

    public void setParameters(Collection<CompoundVariable> parameters) throws InvalidVariableException
    Note: This is always called even if no parameters are provided (versions of JMeter after 2.3.1)
    Specified by:
      `setParameters` in interface `Function`
    Specified by:
      `setParameters` in class `AbstractFunction`
    Parameters:
      `parameters` - The parameters for the function call
    Throws:
      `InvalidVariableException` - - when the variables for the function call can't be evaluated
    See Also:
      - `Function.setParameters(Collection)`

  - ### getReferenceKey

    public String getReferenceKey()
    Return the name of your function. Convention is to prepend "__" to the name (ie "__regexFunction")
    Specified by:
      `getReferenceKey` in interface `Function`
    Specified by:
      `getReferenceKey` in class `AbstractFunction`
    Returns:
      The name of the function
    See Also:
      - `Function.getReferenceKey()`

  - ### getArgumentDesc

    public List<String> getArgumentDesc()
    Return a list of strings briefly describing each parameter your function takes. Please use JMeterUtils.getResString(resource_name) to grab a resource string. Otherwise, your help text will be difficult to internationalize. This list is not optional. If you don't wish to write help, you must at least return a List containing the correct number of blank strings, one for each argument.
    Specified by:
      `getArgumentDesc` in interface `Function`
    Returns:
      List with brief descriptions for each parameter the function takes

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

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