This release includes a bunch changes!
-
Upgrade JMeter from 5.2.1 to 5.4.1.
This avoids some issues while running in newer jvms (like 16).
Thanks to @kirillyu for requesting and pushing this change. -
Refactor of stats classes to make them more reusable and easier to extend.
You can now more easily collect custom metrics using, for example, ajsr223PostProcessor
and provided stats classes.
Thanks again to @kirillyu for pushing in this matter and for the really nice discussion that we have had about this. -
Take into consideration that previous refactor changed the way of getting some statistics (eg:
stats.overall().maxSampleTime()
can now be retrieved usingstats.overall().sampleTime().max()
), and removedelapsedTime
method, which generates more confusion that what it adds in functionality.
Most used methods (i.e:samplesCount
,errorsCount
andsampleTimePercentile99
) were left unaltered.
These changes were done to avoid in the future introducing non backwards compatible changes when new changes in stats are required. -
Additionally, percentiles are now calculated using p-square algorithm to significantly reduce required memory and avoid incorrect results due to window size of previous approach (20000 samples by default).
The new method may produce inaccurate results with low number of samples (eg: under 1000) and with particular distribution of data, but in general for load testing and usual long runs, it provides very precise results with almost no penalty cost.
Let us know your experience with this new calculation method, and if at some point you need more precise mechanism you may useorg.apache.jorphan.math.StatCalculatorLong
(internally used by JMeter when using Aggregate Report) with ajsr223PostProcessor
at the expense of required memory
Thanks again to @kirillyu for discussion of alternatives. -
You can now set JMeter properties with
EmbeddedJMeterEngine
. -
Temporary folder used as JMeter home is now significantly reduced in size, thanks to the contribution of @anasoid.