Class SampleResult

    • 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.
      • EMPTY_BA

        public static final byte[] EMPTY_BA
        empty array which can be returned instead of null
    • 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 (both in milliseconds)
        elapsed - time in milliseconds
    • Method Detail

      • setSaveConfig

        public void setSaveConfig​(SampleSaveConfiguration propertiesToSave)
        Parameters:
        propertiesToSave - The propertiesToSave to set.
      • 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 in milliseconds since unix epoch
        end - end time in milliseconds since unix epoch
        Returns:
        sample with given start and 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 in milliseconds
        Returns:
        sample that starts 'now' and ends elapsed milliseconds later
      • currentTimeInMillis

        public long currentTimeInMillis()
        Helper method to get 1 ms resolution timing.
        Returns:
        the current time in milliseconds
        Throws:
        RuntimeException - when useNanoTime is true but nanoTimeOffset is not set
      • setStampAndTime

        public void setStampAndTime​(long stamp,
                                    long elapsed)
        For use by SaveService only.
        Parameters:
        stamp - this may be a start time or an end time (both in milliseconds)
        elapsed - time in milliseconds
        Throws:
        RuntimeException - when startTime or endTime has been set already
      • markFile

        public boolean markFile​(String filename)
        Set the "marked" flag to show that the result has been written to the file.
        Parameters:
        filename - the name of the file
        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:
        • ResponseCode
        • ResponseMessage
        • Successful status
      • 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 - the SampleResult to be added
      • addRawSubResult

        public void addRawSubResult​(SampleResult subResult)
        Add a subresult to the collection without updating any parent fields.
        Parameters:
        subResult - the SampleResult to be added
      • storeSubResult

        public void storeSubResult​(SampleResult subResult)
        Add a subresult read from a results file.

        As for addSubResult(SampleResult), except that the fields don't need to be accumulated

        Parameters:
        subResult - the SampleResult to be added
      • 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()
      • 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)
      • 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 - flag whether this sampler is working as a 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 are the bytes of the response data.
        Parameters:
        length - the number of bytes of the response data for this sample
      • 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.
      • getConnectTime

        public long getConnectTime()
        Returns:
        Returns the connect time.
      • connectEnd

        public void connectEnd()
        Set the time to the end of connecting
      • setConnectTime

        public void setConnectTime​(long time)
        This is only intended for use by SampleResultConverter!
        Parameters:
        time - The connect time 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 - the number of bytes of the header
      • 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