Skip to content

Sample time elapsed is incorrect for transactions with constant time thread delays during ramp down #6496

@twn

Description

@twn

Expected behavior

I expect that transaction sample elapsed time is the sum of child sample elapsed times excluding thread pause times which should be counted as idle time for the transaction. (Include duration of timer and pre-post processors in generated sample is set to false)

Alternatively the success flag could be set to false for the transaction.

This was working as expected in JMeter 2.9

Actual behavior

As long as the threads are not stopped the behaviour is as expected.
But during ramp down or thread stop the pause times seem to be added to the transaction elapsed time, which is wrong and produces bad performance results.

Sample during normal execution:

<sample t="924" it="30012" lt="0" ts="1755001448003" s="true" lb="Transaction Controller" rc="200" rm="Number of samples in transaction : 3, number of failing samples : 0" tn="Thread Group 1-10" dt="" by="4589" sc="1" ec="0" ng="10" na="10">
  <httpSample t="230" it="0" lt="229" ts="1755001458008" s="true" lb="Dummy Request #1" rc="200" rm="OK" tn="Thread Group 1-10" dt="text" by="1521" sc="1" ec="0" ng="10" na="10">
    <java.net.URL>http://example.com/</java.net.URL>
  </httpSample>
  <httpSample t="338" it="0" lt="338" ts="1755001468243" s="true" lb="Dummy Request #2" rc="200" rm="OK" tn="Thread Group 1-10" dt="text" by="1534" sc="1" ec="0" ng="10" na="10">
    <java.net.URL>http://example.com/</java.net.URL>
  </httpSample>
  <httpSample t="356" it="0" lt="355" ts="1755001478584" s="true" lb="Dummy Request #3" rc="200" rm="OK" tn="Thread Group 1-10" dt="text" by="1534" sc="1" ec="0" ng="10" na="10">
    <java.net.URL>http://example.com/</java.net.URL>
  </httpSample>
</sample>

Sample during ramp down / thread stop:

<sample t="20707" it="0" lt="0" ts="1755001458708" s="true" lb="Transaction Controller" rc="200" rm="" tn="Thread Group 1-1" dt="" by="3068" sc="1" ec="0" ng="9" na="9">
  <httpSample t="354" it="0" lt="354" ts="1755001468710" s="true" lb="Dummy Request #1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="1534" sc="1" ec="0" ng="10" na="10">
    <java.net.URL>http://example.com/</java.net.URL>
  </httpSample>
  <httpSample t="346" it="0" lt="346" ts="1755001479070" s="true" lb="Dummy Request #2" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="1534" sc="1" ec="0" ng="9" na="9">
    <java.net.URL>http://example.com/</java.net.URL>
  </httpSample>
</sample>

Steps to reproduce the problem

Execute the attached TestPlan.
open the generated rampdown-requests.xml and have a look at the elasped time of the last samples.

rampDownIssue.jmx.txt

JMeter Version

5.6.3

Java Version

OpenJDK Runtime Environment Zulu17.46+19-CA (build 17.0.9+8-LTS)

OS Version

MacOS 15.6

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions