Class StringFromFile
- java.lang.Object
-
- org.apache.jmeter.functions.AbstractFunction
-
- org.apache.jmeter.functions.StringFromFile
-
- All Implemented Interfaces:
Function
,TestStateListener
public class StringFromFile extends AbstractFunction implements TestStateListener
StringFromFile Function to read a String from a text file. Parameters: - file name - variable name (optional - defaults to StringFromFile_) Returns: - the next line from the file - or **ERR** if an error occurs - value is also saved in the variable for later re-use. Ensure that different variable names are used for each call to the function Notes:- JMeter instantiates a single copy of each function for every reference in the test plan
- Function instances are shared between threads.
- Each StringFromFile instance reads the file independently. The output variable can be used to save the value for later use in the same thread.
- The file name is resolved at file (re-)open time; the file is initially opened on first execution (which could be any thread)
- the output variable name is resolved every time the function is invoked
- Since:
- 1.9
-
-
Constructor Summary
Constructors Constructor Description StringFromFile()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
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
checkMinParameterCount, checkParameterCount, checkParameterCount, execute, getVariables
-
-
-
-
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 interfaceFunction
- Specified by:
execute
in classAbstractFunction
- Parameters:
previousResult
- The previousSampleResult
currentSampler
- The currentSampler
- 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 interfaceFunction
- Specified by:
setParameters
in classAbstractFunction
- 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 interfaceFunction
- Specified by:
getReferenceKey
in classAbstractFunction
- Returns:
- The name of the funtion
- 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 interfaceFunction
- Returns:
- List with brief descriptions for each parameter the function takes
-
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 interfaceTestStateListener
- 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 interfaceTestStateListener
- Parameters:
host
- name of host- See Also:
StandardJMeterEngine.run()
-
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 interfaceTestStateListener
- 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 interfaceTestStateListener
- Parameters:
host
- name of host- See Also:
StandardJMeterEngine.stopTest()
-
-