Apache JMeter

org.apache.jmeter.samplers
Class SampleResult

java.lang.Object
  extended by org.apache.jmeter.samplers.SampleResult
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
HTTPSampleResult, StatisticalSampleResult

public class SampleResult
extends Object
implements Serializable

This is a nice packaging for the various information returned from taking a sample of an entry.

See Also:
Serialized Form

Field Summary
static String BINARY
          Data type value indicating that the response data is binary.
protected static String DEFAULT_ENCODING
          The default encoding to be used to decode the responseData byte array.
static String DEFAULT_HTTP_ENCODING
          The default encoding to be used if not overridden.
static byte[] EMPTY_BA
           
static String TEXT
          Data type value indicating that the response data is text.
 
Constructor Summary
  SampleResult()
           
protected SampleResult(long elapsed, boolean atend)
          Create a sample with a specific elapsed time but don't allow the times to be changed later (only used by HTTPSampleResult)
  SampleResult(long stamp, long elapsed)
          Allow users to create a sample with specific timestamp and elapsed times for cloning purposes, but don't allow the times to be changed later Currently used by OldSaveService, CSVSaveService and StatisticalSampleResult
  SampleResult(SampleResult res)
          Copy constructor.
 
Method Summary
 void addAssertionResult(AssertionResult assertResult)
           
 void addRawSubResult(SampleResult subResult)
          Add a subresult to the collection without updating any parent fields.
 void addSubResult(SampleResult subResult)
          Add a subresult and adjust the parent byte count and end-time.
 void cleanAfterSample()
          Clean up cached data
static SampleResult createTestSample(long elapsed)
          Create a sample with a specific elapsed time for test purposes, but don't allow the times to be changed later
static SampleResult createTestSample(long start, long end)
          Create a sample with specific start and end times for test purposes, but don't allow the times to be changed later (used by StatVisualizerModel.Test)
 long currentTimeInMillis()
           
 int getAllThreads()
           
 AssertionResult[] getAssertionResults()
          Gets the assertion results associated with this sample.
 int getBodySize()
           
 int getBytes()
          return the bytes returned by the response.
 String getContentType()
           
 String getDataEncodingNoDefault()
          Returns the dataEncoding.
 String getDataEncodingWithDefault()
          Returns the dataEncoding or the default if no dataEncoding was provided.
protected  String getDataEncodingWithDefault(String defaultEncoding)
          Returns the dataEncoding or the default if no dataEncoding was provided.
 String getDataType()
           
 long getEndTime()
           
 int getErrorCount()
          Returns the count of errors.
 int getGroupThreads()
           
 int getHeadersSize()
          Get the headers size in bytes
 long getIdleTime()
           
 long getLatency()
           
 String getMediaType()
          Get the media type from the Content Type
 SampleResult getParent()
           
 String getRequestHeaders()
           
 String getResponseCode()
           
 byte[] getResponseData()
          Gets the responseData attribute of the SampleResult object.
 String getResponseDataAsString()
          Gets the responseData of the SampleResult object as a String
 String getResponseHeaders()
           
 String getResponseMessage()
           
 String getResultFileName()
           
 int getSampleCount()
          return the sample count. by default, the value is 1.
 String getSampleLabel()
           
 String getSampleLabel(boolean includeGroup)
          Get the sample label for use in summary reports etc.
 String getSamplerData()
           
 SampleSaveConfiguration getSaveConfig()
           
 long getStartTime()
           
 SampleResult[] getSubResults()
          Gets the subresults associated with this sample.
 String getThreadName()
           
 long getTime()
          Get the time it took this sample to occur.
 long getTimeStamp()
          Get the sample timestamp, which may be either the start time or the end time.
 URL getURL()
           
 String getUrlAsString()
          Get a String representation of the URL (if defined).
 boolean isMonitor()
          If the sampler is a monitor, method will return true.
 boolean isResponseCodeOK()
           
 boolean isStampedAtStart()
           
 boolean isStartNextThreadLoop()
           
 boolean isStopTest()
           
 boolean isStopTestNow()
           
 boolean isStopThread()
           
 boolean isSuccessful()
           
 void latencyEnd()
          Set the time to the first response
 boolean markFile(String filename)
          Set the "marked" flag to show that the result has been written to the file.
 void removeAssertionResults()
          Allow custom SampleSenders to drop unwanted assertionResults
 void removeSubResults()
          Allow custom SampleSenders to drop unwanted subResults
 void sampleEnd()
          Record the end time of a sample and calculate the elapsed time
 void samplePause()
          Pause a sample
 void sampleResume()
          Resume a sample
 void sampleStart()
          Record the start time of a sample
 void setAllThreads(int n)
           
 void setBodySize(int bodySize)
           
 void setBytes(int length)
          In the event the sampler does want to pass back the actual contents, we still want to calculate the throughput.
 void setContentType(String string)
          Stores the content-type string, e.g.
 void setDataEncoding(String dataEncoding)
          Sets the dataEncoding.
 void setDataType(String dataType)
           
 void setEncodingAndType(String ct)
          Extract and save the DataEncoding and DataType from the parameter provided.
 void setEndTime(long end)
           
 void setErrorCount(int i)
           
 void setGroupThreads(int n)
           
 void setHeadersSize(int size)
          Set the headers size in bytes
 void setIdleTime(long idle)
          Set idle time pause.
 void setLatency(long latency)
          This is only intended for use by SampleResultConverter!
 void setMonitor(boolean monitor)
          When a Sampler is working as a monitor
 void setParent(SampleResult parent)
           
 void setRequestHeaders(String string)
           
 void setResponseCode(String code)
           
 void setResponseCodeOK()
          Set response code to OK, i.e. "200"
 void setResponseData(byte[] response)
          Sets the responseData attribute of the SampleResult object.
 void setResponseData(String response)
          Deprecated. - only intended for use from BeanShell code
 void setResponseData(String response, String encoding)
          Sets the encoding and responseData attributes of the SampleResult object.
 void setResponseHeaders(String string)
           
 void setResponseMessage(String msg)
           
 void setResponseMessageOK()
           
 void setResponseOK()
          Set result statuses OK - shorthand method to set: ResponseCode ResponseMessage Successful status
 void setResultFileName(String resultFileName)
           
 void setSampleCount(int count)
          The statistical sample sender aggregates several samples to save on transmission costs.
 void setSampleLabel(String label)
           
 void setSamplerData(String s)
           
 void setSaveConfig(SampleSaveConfiguration propertiesToSave)
           
 void setStampAndTime(long stamp, long elapsed)
           
 void setStartNextThreadLoop(boolean startNextThreadLoop)
           
protected  void setStartTime(long start)
           
 void setStopTest(boolean b)
           
 void setStopTestNow(boolean b)
           
 void setStopThread(boolean b)
           
 void setSuccessful(boolean success)
          Sets the successful attribute of the SampleResult object.
 void setThreadName(String threadName)
           
 void setTimeStamp(long timeStamp)
          This is only intended for use by SampleResultConverter!
 void setURL(URL location)
           
 void storeSubResult(SampleResult subResult)
          Add a subresult read from a results file.
 String toString()
          Returns the display name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_HTTP_ENCODING

public static final String DEFAULT_HTTP_ENCODING
The default encoding to be used if not overridden. The value is ISO-8859-1.

See Also:
Constant Field Values

DEFAULT_ENCODING

protected static final String DEFAULT_ENCODING
The default encoding to be used to decode the responseData byte array. The value is defined by the property "sampleresult.default.encoding" with a default of DEFAULT_HTTP_ENCODING if that is not defined.


TEXT

public static final String TEXT
Data type value indicating that the response data is text.

See Also:
getDataType(), setDataType(java.lang.String), Constant Field Values

BINARY

public static final String BINARY
Data type value indicating that the response data is binary.

See Also:
getDataType(), setDataType(java.lang.String), Constant Field Values

EMPTY_BA

public static final byte[] EMPTY_BA
Constructor Detail

SampleResult

public SampleResult()

SampleResult

public SampleResult(SampleResult res)
Copy constructor.

Parameters:
res - existing sample result

SampleResult

protected SampleResult(long elapsed,
                       boolean atend)
Create a sample with a specific elapsed time but don't allow the times to be changed later (only used by HTTPSampleResult)

Parameters:
elapsed - time
atend - create the sample finishing now, else starting now

SampleResult

public SampleResult(long stamp,
                    long elapsed)
Allow users to create a sample with specific timestamp and elapsed times for cloning purposes, but don't allow the times to be changed later Currently used by OldSaveService, CSVSaveService and StatisticalSampleResult

Parameters:
stamp - - this may be a start time or an end time
elapsed -
Method Detail

setSaveConfig

public void setSaveConfig(SampleSaveConfiguration propertiesToSave)
Parameters:
propertiesToSave - The propertiesToSave to set.

getSaveConfig

public SampleSaveConfiguration getSaveConfig()

isStampedAtStart

public boolean isStampedAtStart()

createTestSample

public static SampleResult createTestSample(long start,
                                            long end)
Create a sample with specific start and end times for test purposes, but don't allow the times to be changed later (used by StatVisualizerModel.Test)

Parameters:
start - start time
end - end time

createTestSample

public static SampleResult createTestSample(long elapsed)
Create a sample with a specific elapsed time for test purposes, but don't allow the times to be changed later

Parameters:
elapsed - - desired elapsed time

currentTimeInMillis

public long currentTimeInMillis()

setStampAndTime

public void setStampAndTime(long stamp,
                            long elapsed)

markFile

public boolean markFile(String filename)
Set the "marked" flag to show that the result has been written to the file.

Parameters:
filename -
Returns:
true if the result was previously marked

getResponseCode

public String getResponseCode()

setResponseCodeOK

public void setResponseCodeOK()
Set response code to OK, i.e. "200"


setResponseCode

public void setResponseCode(String code)

isResponseCodeOK

public boolean isResponseCodeOK()

getResponseMessage

public String getResponseMessage()

setResponseMessage

public void setResponseMessage(String msg)

setResponseMessageOK

public void setResponseMessageOK()

setResponseOK

public void setResponseOK()
Set result statuses OK - shorthand method to set:


getThreadName

public String getThreadName()

setThreadName

public void setThreadName(String threadName)

getTimeStamp

public long getTimeStamp()
Get the sample timestamp, which may be either the start time or the end time.

Returns:
timeStamp in milliseconds
See Also:
getStartTime(), getEndTime()

getSampleLabel

public String getSampleLabel()

getSampleLabel

public String getSampleLabel(boolean includeGroup)
Get the sample label for use in summary reports etc.

Parameters:
includeGroup - whether to include the thread group name
Returns:
the label

setSampleLabel

public void setSampleLabel(String label)

addAssertionResult

public void addAssertionResult(AssertionResult assertResult)

getAssertionResults

public AssertionResult[] getAssertionResults()
Gets the assertion results associated with this sample.

Returns:
an array containing the assertion results for this sample. Returns empty array if there are no assertion results.

addSubResult

public void addSubResult(SampleResult subResult)
Add a subresult and adjust the parent byte count and end-time.

Parameters:
subResult -

addRawSubResult

public void addRawSubResult(SampleResult subResult)
Add a subresult to the collection without updating any parent fields.

Parameters:
subResult -

storeSubResult

public void storeSubResult(SampleResult subResult)
Add a subresult read from a results file. As for addSubResult(), except that the fields don't need to be accumulated

Parameters:
subResult -

getSubResults

public SampleResult[] getSubResults()
Gets the subresults associated with this sample.

Returns:
an array containing the subresults for this sample. Returns an empty array if there are no subresults.

setResponseData

public void setResponseData(byte[] response)
Sets the responseData attribute of the SampleResult object. If the parameter is null, then the responseData is set to an empty byte array. This ensures that getResponseData() can never be null.

Parameters:
response - the new responseData value

setResponseData

@Deprecated
public void setResponseData(String response)
Deprecated. - only intended for use from BeanShell code

Sets the responseData attribute of the SampleResult object. Should only be called after setting the dataEncoding (if necessary)

Parameters:
response - the new responseData value (String)

setResponseData

public void setResponseData(String response,
                            String encoding)
Sets the encoding and responseData attributes of the SampleResult object.

Parameters:
response - the new responseData value (String)
encoding - the encoding to set and then use (if null, use platform default)

getResponseData

public byte[] getResponseData()
Gets the responseData attribute of the SampleResult object.

Note that some samplers may not store all the data, in which case getResponseData().length will be incorrect. Instead, always use getBytes() to obtain the sample result byte count.

Returns:
the responseData value (cannot be null)

getResponseDataAsString

public String getResponseDataAsString()
Gets the responseData of the SampleResult object as a String

Returns:
the responseData value as a String, converted according to the encoding

setSamplerData

public void setSamplerData(String s)

getSamplerData

public String getSamplerData()

getTime

public long getTime()
Get the time it took this sample to occur.

Returns:
elapsed time in milliseonds

isSuccessful

public boolean isSuccessful()

setDataType

public void setDataType(String dataType)

getDataType

public String getDataType()

setEncodingAndType

public void setEncodingAndType(String ct)
Extract and save the DataEncoding and DataType from the parameter provided. Does not save the full content Type.

Parameters:
ct - - content type (may be null)
See Also:
which should be used to save the full content-type string

setSuccessful

public void setSuccessful(boolean success)
Sets the successful attribute of the SampleResult object.

Parameters:
success - the new successful value

toString

public String toString()
Returns the display name.

Overrides:
toString in class Object
Returns:
display name of this sample result

getDataEncodingWithDefault

public String getDataEncodingWithDefault()
Returns the dataEncoding or the default if no dataEncoding was provided.

Returns:
the value of the dataEncoding or DEFAULT_ENCODING

getDataEncodingWithDefault

protected String getDataEncodingWithDefault(String defaultEncoding)
Returns the dataEncoding or the default if no dataEncoding was provided.

Parameters:
defaultEncoding - the default to be applied
Returns:
the value of the dataEncoding or the provided default

getDataEncodingNoDefault

public String getDataEncodingNoDefault()
Returns the dataEncoding. May be null or the empty String.

Returns:
the value of the dataEncoding

setDataEncoding

public void setDataEncoding(String dataEncoding)
Sets the dataEncoding.

Parameters:
dataEncoding - the dataEncoding to set, e.g. ISO-8895-1, UTF-8

isStopTest

public boolean isStopTest()
Returns:
whether to stop the test

isStopTestNow

public boolean isStopTestNow()
Returns:
whether to stop the test now

isStopThread

public boolean isStopThread()
Returns:
whether to stop this thread

setStopTest

public void setStopTest(boolean b)

setStopTestNow

public void setStopTestNow(boolean b)

setStopThread

public void setStopThread(boolean b)

getRequestHeaders

public String getRequestHeaders()
Returns:
the request headers

getResponseHeaders

public String getResponseHeaders()
Returns:
the response headers

setRequestHeaders

public void setRequestHeaders(String string)
Parameters:
string - - request headers

setResponseHeaders

public void setResponseHeaders(String string)
Parameters:
string - - response headers

getContentType

public String getContentType()
Returns:
the full content type - e.g. text/html [;charset=utf-8 ]

getMediaType

public String getMediaType()
Get the media type from the Content Type

Returns:
the media type - e.g. text/html (without charset, if any)

setContentType

public void setContentType(String string)
Stores the content-type string, e.g. "text/xml; charset=utf-8"

Parameters:
string -
See Also:
which can be used to extract the charset.

getIdleTime

public long getIdleTime()
Returns:
idleTime

getEndTime

public long getEndTime()
Returns:
the end time

getStartTime

public long getStartTime()
Returns:
the start time

setStartTime

protected final void setStartTime(long start)

setEndTime

public void setEndTime(long end)

setIdleTime

public void setIdleTime(long idle)
Set idle time pause. For use by SampleResultConverter/CSVSaveService.

Parameters:
idle - long

sampleStart

public void sampleStart()
Record the start time of a sample


sampleEnd

public void sampleEnd()
Record the end time of a sample and calculate the elapsed time


samplePause

public void samplePause()
Pause a sample


sampleResume

public void sampleResume()
Resume a sample


setMonitor

public void setMonitor(boolean monitor)
When a Sampler is working as a monitor

Parameters:
monitor -

isMonitor

public boolean isMonitor()
If the sampler is a monitor, method will return true.

Returns:
true if the sampler is a monitor

setSampleCount

public void setSampleCount(int count)
The statistical sample sender aggregates several samples to save on transmission costs.

Parameters:
count - number of samples represented by this instance

getSampleCount

public int getSampleCount()
return the sample count. by default, the value is 1.

Returns:
the sample count

getErrorCount

public int getErrorCount()
Returns the count of errors.

Returns:
0 - or 1 if the sample failed TODO do we need allow for nested samples?

setErrorCount

public void setErrorCount(int i)

setBytes

public void setBytes(int length)
In the event the sampler does want to pass back the actual contents, we still want to calculate the throughput. The bytes is the bytes of the response data.

Parameters:
length -

getBytes

public int getBytes()
return the bytes returned by the response.

Returns:
byte count

getLatency

public long getLatency()
Returns:
Returns the latency.

latencyEnd

public void latencyEnd()
Set the time to the first response


setLatency

public void setLatency(long latency)
This is only intended for use by SampleResultConverter!

Parameters:
latency - The latency to set.

setTimeStamp

public void setTimeStamp(long timeStamp)
This is only intended for use by SampleResultConverter!

Parameters:
timeStamp - The timeStamp to set.

setURL

public void setURL(URL location)

getURL

public URL getURL()

getUrlAsString

public String getUrlAsString()
Get a String representation of the URL (if defined).

Returns:
ExternalForm of URL, or empty string if url is null

getParent

public SampleResult getParent()
Returns:
Returns the parent.

setParent

public void setParent(SampleResult parent)
Parameters:
parent - The parent to set.

getResultFileName

public String getResultFileName()

setResultFileName

public void setResultFileName(String resultFileName)

getGroupThreads

public int getGroupThreads()

setGroupThreads

public void setGroupThreads(int n)

getAllThreads

public int getAllThreads()

setAllThreads

public void setAllThreads(int n)

removeAssertionResults

public void removeAssertionResults()
Allow custom SampleSenders to drop unwanted assertionResults


removeSubResults

public void removeSubResults()
Allow custom SampleSenders to drop unwanted subResults


setHeadersSize

public void setHeadersSize(int size)
Set the headers size in bytes

Parameters:
size -

getHeadersSize

public int getHeadersSize()
Get the headers size in bytes

Returns:
the headers size

getBodySize

public int getBodySize()
Returns:
the body size in bytes

setBodySize

public void setBodySize(int bodySize)
Parameters:
bodySize - the body size to set

isStartNextThreadLoop

public boolean isStartNextThreadLoop()
Returns:
the startNextThreadLoop

setStartNextThreadLoop

public void setStartNextThreadLoop(boolean startNextThreadLoop)
Parameters:
startNextThreadLoop - the startNextLoop to set

cleanAfterSample

public void cleanAfterSample()
Clean up cached data


Apache JMeter

Copyright © 1998-2013 Apache Software Foundation. All Rights Reserved.