Understanding the percentile in gatling report


I want to get a better understanding of the percentile under report. For example if I am looking at the 50% percentile, it shows 387

However if I am looking at the response time distribution:
the first bar shows 72ms 30.74%
second bar shows 213ms 12.59%
and third bar shows 353ms 9%

if I add the percentage together it is 52.33%, my understanding is 52.33% of the response time is less than 353ms, so I would expect 50% percentile is less than 353, however the 50% percentile in the report is showing 387, how do I interpret the percentile number correctly?

Could you please share your simulation.log?

Thanks for looking into this. In the screenshot I attached in the previous message, the transaction is request_3
Attached is simulation.log

simulation.log (3.34 MB)

In the “Response Time Distribution” chart, the abscissa value displayed in the tooltip is the middle of the bucket.
It might make sense to display the bucket bounds instead.

Thank you for the explanation. A follow up question on the percentile with the same run. On the response time percentiles over time (OK) graph, for example, I only selected 50% on the graph and hover over on this spike here, it shows 50% 14057. And on the top it shows 50th percentile 387ms.

How do I interpret that from a continuous graph of 50% to a single number (387) Thank you

The maths are correct.
You can have a good overall distribution on your whole test duration and still experience some spikes where the distribution is very bad.

I understand there could be spikes during the run, what i don’t understand is I selected 50% in the graph, that’s showing 50th percentile of response time for the whole run, correct? Now how do I translate this whole distribution to a single number? Is 387ms the 50th percentile of the 50th percentile graph?

I selected 50% in the graph, that’s showing 50th percentile of response time for the whole run

Sorry, I really don’t get what you don’t understand.

  • 387ms is the p50 on the whole test duration
  • 14,057ms is the p50 for the time bucket at 14:57:28. The number of buckets depends on the maxPlotPerSeries value configured in gatling.conf (buckets can’t be smaller than 1ms).