Package org.apache.jmeter.save
Class CSVSaveService
java.lang.Object
org.apache.jmeter.save.CSVSaveService
This class provides a means for saving/reading test results as CSV files.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final charstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final String -
Method Summary
Modifier and TypeMethodDescriptionstatic String[]csvReadFile(BufferedReader infile, char delim) Reads from file and splits input into strings according to the delimiter, taking note of quoted strings.static String[]csvSplitString(String line, char delim) Reads from String and splits into strings according to the delimiter, taking note of quoted strings.static SampleSaveConfigurationgetSampleSaveConfiguration(String headerLine, String filename) Parse a CSV header linestatic StringGenerates the field names for the output filestatic StringprintableFieldNamesToString(SampleSaveConfiguration saveConfig) Generates the field names for the output filestatic voidprocessSamples(String filename, Visualizer visualizer, ResultCollector resultCollector) Read Samples from a file; handles quoted strings.static StringquoteDelimiters(String input, char[] specialChars) Returns aStringvalue for a character-delimited column value enclosed in the quote character, if required.static StringConvert a result into a string, where the fields of the result are separated by the default delimiter.static StringresultToDelimitedString(SampleEvent event, String delimiter) Convert a result into a string, where the fields of the result are separated by a specified String.static StringresultToDelimitedString(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.static voidsaveCSVStats(List<?> data, Writer writer) Method will save aggregate statistics as CSV.static voidsaveCSVStats(List<?> data, Writer writer, String[] headers) Method will save aggregate statistics as CSV.static voidsaveCSVStats(DefaultTableModel model, FileWriter writer) Method saves aggregate statistics (with header names) as CSV from a table model.static voidsaveCSVStats(DefaultTableModel model, FileWriter writer, boolean saveHeaders) Method saves aggregate statistics as CSV from a table model.static voidsaveSampleResult(SampleEvent event, PrintWriter out)
-
Field Details
-
DATA_TYPE
- See Also:
-
FAILURE_MESSAGE
- See Also:
-
LABEL
- See Also:
-
RESPONSE_CODE
- See Also:
-
RESPONSE_MESSAGE
- See Also:
-
SUCCESSFUL
- See Also:
-
THREAD_NAME
- See Also:
-
TIME_STAMP
- See Also:
-
CSV_ELAPSED
- See Also:
-
CSV_BYTES
- See Also:
-
CSV_SENT_BYTES
- See Also:
-
CSV_THREAD_COUNT1
- See Also:
-
CSV_THREAD_COUNT2
- See Also:
-
CSV_SAMPLE_COUNT
- See Also:
-
CSV_ERROR_COUNT
- See Also:
-
CSV_URL
- See Also:
-
CSV_FILENAME
- See Also:
-
CSV_LATENCY
- See Also:
-
CSV_CONNECT_TIME
- See Also:
-
CSV_ENCODING
- See Also:
-
CSV_HOSTNAME
- See Also:
-
CSV_IDLETIME
- See Also:
-
VARIABLE_NAME_QUOTE_CHAR
- See Also:
-
QUOTING_CHAR
public static final char QUOTING_CHAR- See Also:
-
-
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 filevisualizer- where to send the resultsresultCollector- the parent collector- Throws:
IOException- when the file referenced byfilenamecan't be read correctly
-
printableFieldNamesToString
Generates the field names for the output file- Returns:
- the field names as a string
-
printableFieldNamesToString
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 filefilename- name of file (for log message only)- Returns:
- config corresponding to the header items found or null if not a header line
-
saveCSVStats
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 rowswriter- output writer- Throws:
IOException- when writing towriterfails
-
saveCSVStats
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 rowswriter- output fileheaders- header names (if non-null)- Throws:
IOException- when writing towriterfails
-
saveCSVStats
Method saves aggregate statistics (with header names) as CSV from a table model. Same assaveCSVStats(List, Writer, String[])except that there is no need to create a List containing the data.- Parameters:
model- table model containing the datawriter- output file- Throws:
IOException- when writing towriterfails
-
saveCSVStats
public static void saveCSVStats(DefaultTableModel model, FileWriter writer, boolean saveHeaders) throws IOException Method saves aggregate statistics as CSV from a table model. Same assaveCSVStats(List, Writer, String[])except that there is no need to create a List containing the data.- Parameters:
model- table model containing the datawriter- output filesaveHeaders- whether or not to save headers- Throws:
IOException- when writing towriterfails
-
resultToDelimitedString
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
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 converteddelimiter- 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 convertedsample-SampleResultto logsaveConfig-SampleSaveConfigurationto use for loggingdelimiter- the separation string- Returns:
- the separated value representation of the result
-
quoteDelimiters
Returns a
Stringvalue 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,
nullfor null string input
-
csvReadFile
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
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 - notnulldelim- delimiter (e.g. comma)- Returns:
- array of strings
- Throws:
IOException- also for unexpected quote characters
-
saveSampleResult
- Parameters:
event-SampleEventout-PrintWriterto which samples will be written
-