Apache JMeter

org.apache.jmeter.functions
Class Jexl2Function

java.lang.Object
  extended by org.apache.jmeter.functions.AbstractFunction
      extended by org.apache.jmeter.functions.Jexl2Function
All Implemented Interfaces:
Function, ThreadListener

public class Jexl2Function
extends AbstractFunction
implements ThreadListener

A function which understands Commons JEXL2

Since:
2.6

Constructor Summary
Jexl2Function()
           
 
Method Summary
 String execute(SampleResult previousResult, Sampler currentSampler)
           N.B. execute() should be synchronized if function is operating with non-thread-safe objects (e.g. operates with files).
 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 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.functions.AbstractFunction
checkMinParameterCount, checkParameterCount, checkParameterCount, execute, getVariables
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Jexl2Function

public Jexl2Function()
Method Detail

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)

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

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 funtion
See Also:
Function.getReferenceKey()

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)

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.

Specified by:
threadStarted in interface ThreadListener
See Also:
JMeterThread.threadStarted()

threadFinished

public void threadFinished()
Description copied from interface: ThreadListener
Called for each thread after all samples have been processed.

Specified by:
threadFinished in interface ThreadListener
See Also:
JMeterThread.threadFinished(org.apache.jmeter.engine.event.LoopIterationListener)

Apache JMeter

Copyright © 1998-2015 Apache Software Foundation. All Rights Reserved.