Class SampleResult

  • All Implemented Interfaces:
    java.io.Serializable , java.lang.Cloneable , org.apache.jmeter.gui.Searchable

    
    public class SampleResult
     implements Serializable, Cloneable, Searchable
                        

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

    • Constructor Detail

      • SampleResult

        SampleResult()
      • SampleResult

        SampleResult(SampleResult res)
        Copy constructor.
        Parameters:
        res - existing sample result
      • SampleResult

        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 CSVSaveService and StatisticalSampleResult
        Parameters:
        stamp - this may be a start time or an end time (both in milliseconds)
        elapsed - time in milliseconds
    • Method Detail

      • getResponseData

         Array<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)

      • setResponseData

         void setResponseData(Array<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
      • getTimeStamp

         long getTimeStamp()

        Get the sample timestamp, which may be either the start time or the end time.

        Returns:

        timeStamp in milliseconds

      • setTimeStamp

         void setTimeStamp(long timeStamp)

        This is only intended for use by SampleResultConverter!

        Parameters:
        timeStamp - The timeStamp to set.
      • getEndTime

         long getEndTime()
        Returns:

        the end time

      • setIdleTime

         void setIdleTime(long idle)

        Set idle time pause. For use by SampleResultConverter/CSVSaveService.

        Parameters:
        idle - long
      • setDataType

         void setDataType(String dataType)

        Sets the data type of the sample.

        Parameters:
        dataType - String containing BINARY or TEXT
      • getContentType

         String getContentType()
        Returns:

        the full content type - e.g. text/html [;charset=utf-8 ]

      • setContentType

         void setContentType(String string)

        Stores the content-type string, e.g. text/xml; charset=utf-8

        Parameters:
        string - the content-type to be set
      • getLatency

         long getLatency()
        Returns:

        Returns the latency.

      • setLatency

         void setLatency(long latency)

        This is only intended for use by SampleResultConverter!

        Parameters:
        latency - The latency to set.
      • getConnectTime

         long getConnectTime()
        Returns:

        Returns the connect time.

      • setConnectTime

         void setConnectTime(long time)

        This is only intended for use by SampleResultConverter!

        Parameters:
        time - The connect time to set.
      • getSampleCount

         int getSampleCount()

        return the sample count. by default, the value is 1.

        Returns:

        the sample count

      • setSampleCount

         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
      • getHeadersSize

         int getHeadersSize()

        Get the headers size in bytes

        Returns:

        the headers size

      • setHeadersSize

         void setHeadersSize(int size)

        Set the headers size in bytes

        Parameters:
        size - the number of bytes of the header
      • setSentBytes

         void setSentBytes(long sentBytesCount)
        Parameters:
        sentBytesCount - long sent bytes
      • getResponseDataAsString

         String getResponseDataAsString()

        Gets the responseData of the SampleResult object as a String

        Returns:

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

      • createTestSample

         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

         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

         long currentTimeInMillis()

        Helper method to get 1 ms resolution timing.

        Returns:

        the current time in milliseconds

      • setStampAndTime

         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
      • markFile

         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

      • setResponseOK

         void setResponseOK()

        Set result statuses OK - shorthand method to set:

        • ResponseCode
        • ResponseMessage
        • Successful status
      • getSampleLabel

         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

      • getAssertionResults

         Array<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.

      • isRenameSampleLabel

         static boolean isRenameSampleLabel()

        see https://bz.apache.org/bugzilla/show_bug.cgi?id=63055

        Returns:

        true if TestPlan is in functional mode or property subresults.disable_renaming is true

      • addSubResult

         void addSubResult(SampleResult subResult, boolean renameSubResults)

        Add a subresult and adjust the parent byte count and end-time.

        Parameters:
        subResult - the SampleResult to be added
        renameSubResults - boolean do we rename subResults based on position
      • storeSubResult

         void storeSubResult(SampleResult subResult, boolean renameSubResults)

        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
        renameSubResults - boolean do we rename subResults based on position
      • getSubResults

         Array<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

        @Deprecated() void setResponseData(String response)

        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

         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)
      • getTime

         long getTime()

        Get the time it took this sample to occur.

        Returns:

        elapsed time in milliseconds

      • setEncodingAndType

         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)
      • setSuccessful

         void setSuccessful(boolean success)

        Sets the successful attribute of the SampleResult object.

        Parameters:
        success - the new successful value
      • toString

         String toString()

        Returns the display name.

        Returns:

        display name of this sample result

      • getDataEncodingWithDefault

         String getDataEncodingWithDefault()

        Returns the dataEncoding or the default if no dataEncoding was provided.

        Returns:

        the value of the dataEncoding or DEFAULT_ENCODING

      • getDataEncodingNoDefault

         String getDataEncodingNoDefault()

        Returns the dataEncoding. May be null or the empty String.

        Returns:

        the value of the dataEncoding

      • isStopTest

         boolean isStopTest()
        Returns:

        whether to stop the test waiting for current running Sampler to end

      • isStopTestNow

         boolean isStopTestNow()
        Returns:

        whether to stop the test now interrupting current running samplers

      • isStopThread

         boolean isStopThread()
        Returns:

        whether to stop this thread

      • getMediaType

         String getMediaType()

        Get the media type from the Content Type

        Returns:

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

      • sampleStart

         void sampleStart()

        Record the start time of a sample

      • sampleEnd

         void sampleEnd()

        Record the end time of a sample and calculate the elapsed time

      • setMonitor

        @Deprecated() void setMonitor(boolean monitor)

        When a Sampler is working as a monitor

        Parameters:
        monitor - flag whether this sampler is working as a monitor
      • isMonitor

        @Deprecated() boolean isMonitor()

        If the sampler is a monitor, method will return true.

        Returns:

        true if the sampler is a monitor

      • getErrorCount

         int getErrorCount()

        Returns the count of errors.

        Returns:

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

      • setBytes

        @Deprecated() 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

        @Deprecated() int getBytes()

        return the bytes returned by the response.

        Returns:

        byte count

      • getBytesAsLong

         long getBytesAsLong()

        return the bytes returned by the response.

        Returns:

        byte count

      • latencyEnd

         void latencyEnd()

        Set the time to the first response

      • connectEnd

         void connectEnd()

        Set the time to the end of connecting

      • getUrlAsString

         String getUrlAsString()

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

        Returns:

        ExternalForm of URL, or empty string if url is null

      • removeAssertionResults

         void removeAssertionResults()

        Allow custom SampleSenders to drop unwanted assertionResults

      • removeSubResults

         void removeSubResults()

        Allow custom SampleSenders to drop unwanted subResults

      • getSearchableTokens

         List<String> getSearchableTokens()

        Get a list of all tokens that should be visible to searching

        Returns:

        List of searchable tokens

      • isIgnore

         boolean isIgnore()
        Returns:

        boolean true if this SampleResult should not be sent to Listeners

      • setIgnore

         void setIgnore()

        Call this method to tell JMeter to ignore this SampleResult by Listeners

      • setDataEncoding

         void setDataEncoding(String dataEncoding)

        Sets the dataEncoding.

        Parameters:
        dataEncoding - the dataEncoding to set, e.g.
      • setBytes

         void setBytes(long 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
      • setBodySize

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