Class CSVSaveService

java.lang.Object
org.apache.jmeter.save.CSVSaveService

public final class CSVSaveService extends Object
This class provides a means for saving/reading test results as CSV files.
  • Field Details

  • Method Details

    • processSamples

      public static void processSamples(String filename, Visualizer visualizer, ResultCollector resultCollector) throws IOException
      Read Samples from a file; handles quoted strings.
      Parameters:
      filename - input file
      visualizer - where to send the results
      resultCollector - the parent collector
      Throws:
      IOException - when the file referenced by filename can't be read correctly
    • printableFieldNamesToString

      public static String printableFieldNamesToString()
      Generates the field names for the output file
      Returns:
      the field names as a string
    • printableFieldNamesToString

      public static String printableFieldNamesToString(SampleSaveConfiguration saveConfig)
      Generates the field names for the output file
      Parameters:
      saveConfig - the configuration of what is to be saved
      Returns:
      the field names as a string
    • getSampleSaveConfiguration

      public static SampleSaveConfiguration getSampleSaveConfiguration(String headerLine, String filename)
      Parse a CSV header line
      Parameters:
      headerLine - from CSV file
      filename - name of file (for log message only)
      Returns:
      config corresponding to the header items found or null if not a header line
    • saveCSVStats

      public static void saveCSVStats(List<?> data, Writer writer) throws IOException
      Method will save aggregate statistics as CSV. For now I put it here. Not sure if it should go in the newer SaveService instead of here. if we ever decide to get rid of this class, we'll need to move this method to the new save service.
      Parameters:
      data - List of data rows
      writer - output writer
      Throws:
      IOException - when writing to writer fails
    • saveCSVStats

      public static void saveCSVStats(List<?> data, Writer writer, String[] headers) throws IOException
      Method will save aggregate statistics as CSV. For now I put it here. Not sure if it should go in the newer SaveService instead of here. if we ever decide to get rid of this class, we'll need to move this method to the new save service.
      Parameters:
      data - List of data rows
      writer - output file
      headers - header names (if non-null)
      Throws:
      IOException - when writing to writer fails
    • saveCSVStats

      public static void saveCSVStats(DefaultTableModel model, FileWriter writer) throws IOException
      Method saves aggregate statistics (with header names) as CSV from a table model. Same as saveCSVStats(List, Writer, String[]) except that there is no need to create a List containing the data.
      Parameters:
      model - table model containing the data
      writer - output file
      Throws:
      IOException - when writing to writer fails
    • saveCSVStats

      public static void saveCSVStats(DefaultTableModel model, FileWriter writer, boolean saveHeaders) throws IOException
      Method saves aggregate statistics as CSV from a table model. Same as saveCSVStats(List, Writer, String[]) except that there is no need to create a List containing the data.
      Parameters:
      model - table model containing the data
      writer - output file
      saveHeaders - whether or not to save headers
      Throws:
      IOException - when writing to writer fails
    • resultToDelimitedString

      public static String resultToDelimitedString(SampleEvent event)
      Convert a result into a string, where the fields of the result are separated by the default delimiter.
      Parameters:
      event - the sample event to be converted
      Returns:
      the separated value representation of the result
    • resultToDelimitedString

      public static String resultToDelimitedString(SampleEvent event, String delimiter)
      Convert a result into a string, where the fields of the result are separated by a specified String.
      Parameters:
      event - the sample event to be converted
      delimiter - the separation string
      Returns:
      the separated value representation of the result
    • resultToDelimitedString

      public static String resultToDelimitedString(SampleEvent event, SampleResult sample, SampleSaveConfiguration saveConfig, String delimiter)
      Convert a result into a string, where the fields of the result are separated by a specified String.
      Parameters:
      event - the sample event to be converted
      sample - SampleResult to log
      saveConfig - SampleSaveConfiguration to use for logging
      delimiter - the separation string
      Returns:
      the separated value representation of the result
    • quoteDelimiters

      public static String quoteDelimiters(String input, char[] specialChars)

      Returns a String value for a character-delimited column value enclosed in the quote character, if required.

      If the value contains a special character, then the String value is returned enclosed in the quote character.

      Any quote characters in the value are doubled up.

      If the value does not contain any special characters, then the String value is returned unchanged.

      N.B. The list of special characters includes the quote character.

      Parameters:
      input - the input column String, may be null (without enclosing delimiters)
      specialChars - special characters; second one must be the quote character
      Returns:
      the input String, enclosed in quote characters if the value contains a special character, null for null string input
    • csvReadFile

      public static String[] csvReadFile(BufferedReader infile, char delim) throws IOException
      Reads from file and splits input into strings according to the delimiter, taking note of quoted strings.

      Handles DOS (CRLF), Unix (LF), and Mac (CR) line-endings equally.

      A blank line - or a quoted blank line - both return an array containing a single empty String.

      Parameters:
      infile - input file - must support mark(1)
      delim - delimiter (e.g. comma)
      Returns:
      array of strings, will be empty if there is no data, i.e. if the input is at EOF.
      Throws:
      IOException - also for unexpected quote characters
    • csvSplitString

      public static String[] csvSplitString(String line, char delim) throws IOException
      Reads from String and splits into strings according to the delimiter, taking note of quoted strings. Handles DOS (CRLF), Unix (LF), and Mac (CR) line-endings equally.
      Parameters:
      line - input line - not null
      delim - delimiter (e.g. comma)
      Returns:
      array of strings
      Throws:
      IOException - also for unexpected quote characters
    • saveSampleResult

      public static void saveSampleResult(SampleEvent event, PrintWriter out)
      Parameters:
      event - SampleEvent
      out - PrintWriter to which samples will be written