Class CSVRead

All Implemented Interfaces:
Function

@AutoService(Function.class) public class CSVRead extends AbstractFunction
The function represented by this class allows data to be read from CSV files. Syntax is similar to StringFromFile function. The function allows the test to line-thru the data in the CSV file - one line per each test. E.g. inserting the following in the test scripts :

 ${__CSVRead(c:/BOF/abcd.csv,0)} // read (first) line of 'c:/BOF/abcd.csv'
     // and return the 1st column (represented by the '0')
 ${__CSVRead(c:/BOF/abcd.csv,1)} // read (first) line of 'c:/BOF/abcd.csv'
     // and return the 2nd column (represented by the '1')
 ${__CSVRead(c:/BOF/abcd.csv,next())} // Go to next line of 'c:/BOF/abcd.csv'
 
NOTE: A single instance of each different file is opened and used for all threads.

To open the same file twice, use the alias function:

 __CSVRead(abc.csv,*ONE);
 __CSVRead(abc.csv,*TWO);
 
and later use the references to read from the files:
__CSVRead(*ONE,1);, etc.
Since:
1.9
  • Constructor Details

    • CSVRead

      public CSVRead()
  • 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:
    • 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.
      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 function
      See Also:
    • 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: