org.apache.jmeter.reporters

## Class ResultCollector

- java.lang.Object
- - org.apache.jmeter.testelement.AbstractTestElement
  - - org.apache.jmeter.reporters.AbstractListenerElement
    - - org.apache.jmeter.reporters.ResultCollector

All Implemented Interfaces:
  Serializable, Cloneable, NoThreadClone, Searchable, Clearable, Remoteable, SampleListener, TestElement, TestStateListener

Direct Known Subclasses:
  MailerResultCollector

    public class ResultCollector
    extends AbstractListenerElement
    implements SampleListener, Clearable, Serializable, TestStateListener, Remoteable, NoThreadClone

This class handles all saving of samples. The class must be thread-safe because it is shared between threads (NoThreadClone).

See Also:
  Serialized Form

### Field Summary

Fields
`static String` `FILENAME`

### Fields inherited from interface org.apache.jmeter.testelement.TestElement

`COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

### Constructor Summary

Constructors
Constructor and Description
`ResultCollector()` No-arg constructor.
`ResultCollector(Summariser summer)` Constructor which sets the used `Summariser`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `clearData()` Clears the current data of the object.
`Object` `clone()`
`void` `flushFile()` Flush PrintWriter to synchronize file contents
`String` `getFilename()` Get the filename of the file this collector uses
`SampleSaveConfiguration` `getSaveConfig()`
`boolean` `isErrorLogging()` Get the state of error logging
`boolean` `isSampleWanted(boolean success)` Decides whether or not to a sample is wanted based on: errorOnly successOnly sample success Should only be called for single samples.
`static boolean` `isSampleWanted(boolean success, boolean errorOnly, boolean successOnly)` Decides whether or not to a sample is wanted based on: errorOnly successOnly sample success This version is intended to be called by code that loops over many samples; it is cheaper than fetching the settings each time.
`boolean` `isSuccessOnlyLogging()` Get the state of successful only logging
`void` `loadExistingFile()` Loads an existing sample data (JTL) file.
`void` `sampleOccurred(SampleEvent event)` When a test result is received, display it and save it.
`void` `sampleStarted(SampleEvent e)` A sample has started.
`void` `sampleStopped(SampleEvent e)` A sample has stopped.
`protected void` `sendToVisualizer(SampleResult r)`
`void` `setErrorLogging(boolean errorLogging)` Sets error logging flag
`void` `setFilename(String f)` Sets the filename attribute of the ResultCollector object.
`void` `setSaveConfig(SampleSaveConfiguration saveConfig)`
`void` `setSuccessOnlyLogging(boolean value)` Sets the flag whether only successful samples should be logged
`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.reporters.AbstractListenerElement

`getVisualizer, setListener`

### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

`addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.jmeter.testelement.TestElement

`removed`

### Field Detail

#### FILENAME

    public static final String FILENAME

See Also:
  Constant Field Values

### Constructor Detail

#### ResultCollector

    public ResultCollector()

No-arg constructor.

#### ResultCollector

    public ResultCollector(Summariser summer)

Constructor which sets the used `Summariser`

Parameters:
  `summer` - The `Summariser` to use

### Method Detail

#### clone

    public Object clone()

Specified by:
  `clone` in interface `TestElement`
Overrides:
  `clone` in class `AbstractListenerElement`

#### getFilename

    public String getFilename()

Get the filename of the file this collector uses

Returns:
  The name of the file

#### isErrorLogging

    public boolean isErrorLogging()

Get the state of error logging

Returns:
  Flag whether errors should be logged

#### setErrorLogging

    public final void setErrorLogging(boolean errorLogging)

Sets error logging flag

Parameters:
  `errorLogging` - The flag whether errors should be logged

#### setSuccessOnlyLogging

    public final void setSuccessOnlyLogging(boolean value)

Sets the flag whether only successful samples should be logged

Parameters:
  `value` - The flag whether only successful samples should be logged

#### isSuccessOnlyLogging

    public boolean isSuccessOnlyLogging()

Get the state of successful only logging

Returns:
  Flag whether only successful samples should be logged

#### isSampleWanted

    public boolean isSampleWanted(boolean success)

Decides whether or not to a sample is wanted based on:

- errorOnly
- successOnly
- sample success

Should only be called for single samples.

Parameters:
  `success` - is sample successful
Returns:
  whether to log/display the sample

#### isSampleWanted

    public static boolean isSampleWanted(boolean success,
                                         boolean errorOnly,
                                         boolean successOnly)

Decides whether or not to a sample is wanted based on:

- errorOnly
- successOnly
- sample success

This version is intended to be called by code that loops over many samples; it is cheaper than fetching the settings each time.

Parameters:
  `success` - status of sample
  `errorOnly` - if errors only wanted
  `successOnly` - if success only wanted
Returns:
  whether to log/display the sample

#### setFilename

    public void setFilename(String f)

Sets the filename attribute of the ResultCollector object.

Parameters:
  `f` - the new filename value

#### testEnded

    public void testEnded(String host)

Description copied from interface: `TestStateListener`

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 interface `TestStateListener`
Parameters:
  `host` - name of host
See Also:
  `StandardJMeterEngine.stopTest()`

#### testStarted

    public void testStarted(String host)

Description copied from interface: `TestStateListener`

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 interface `TestStateListener`
Parameters:
  `host` - name of host
See Also:
  `StandardJMeterEngine.run()`

#### testEnded

    public void testEnded()

Description copied from interface: `TestStateListener`

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 interface `TestStateListener`
See Also:
  `StandardJMeterEngine.stopTest()`

#### testStarted

    public void testStarted()

Description copied from interface: `TestStateListener`

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 interface `TestStateListener`
See Also:
  `StandardJMeterEngine.run()`

#### loadExistingFile

    public void loadExistingFile()

Loads an existing sample data (JTL) file. This can be one of:

- XStream format
- CSV format

#### sampleStarted

    public void sampleStarted(SampleEvent e)

Description copied from interface: `SampleListener`
A sample has started.

Specified by:
  `sampleStarted` in interface `SampleListener`
Parameters:
  `e` - the `SampleEvent` that has started

#### sampleStopped

    public void sampleStopped(SampleEvent e)

Description copied from interface: `SampleListener`
A sample has stopped.

Specified by:
  `sampleStopped` in interface `SampleListener`
Parameters:
  `e` - the `SampleEvent` that has stopped

#### sampleOccurred

    public void sampleOccurred(SampleEvent event)

When a test result is received, display it and save it.

Specified by:
  `sampleOccurred` in interface `SampleListener`
Parameters:
  `event` - the sample event that was received

#### sendToVisualizer

    protected final void sendToVisualizer(SampleResult r)

#### flushFile

    public void flushFile()

Flush PrintWriter to synchronize file contents

#### getSaveConfig

    public SampleSaveConfiguration getSaveConfig()

Returns:
  Returns the saveConfig.

#### setSaveConfig

    public void setSaveConfig(SampleSaveConfiguration saveConfig)

Parameters:
  `saveConfig` - The saveConfig to set.

#### clearData

    public void clearData()

Description copied from interface: `Clearable`
Clears the current data of the object.

Specified by:
  `clearData` in interface `Clearable`