JMeter 5.6 Release Notes
Apache JMeter 5.6 release notes with 23 improvements and 15 bug fixes, plus upgrade notes from the official changelog.
Change summary
Section titled “Change summary”| Section | Changes |
|---|---|
| Improvements | 23 |
| Bug fixes | 15 |
| Non-functional changes | 43 |
New and Noteworthy
Section titled “New and Noteworthy”Improvements
Section titled “Improvements”Thread Groups
Section titled “Thread Groups”- Issue#5682PR#717 Open Model Thread Group: avoid skipping rows from CSV Data Set Config
- Support custom thread group implementations in “Add think time” and “Save as test fragment” actions
- Open Model Thread Group: interrupt pending HTTP requests and other
Interruptibletest elements on test stop
HTTP Samplers and Test Script Recorder
Section titled “HTTP Samplers and Test Script Recorder”- PR#5911 Use Caffeine for caching HTTP headers instead of commons-collections4 LRUMap
- PR#5947 Fetch resources referenced in
<link "rel"="preload"...>elements - PR#5869 Allow more templates to format sampler names in the recorder:
#{url},#{method},#{scheme},#{host},#{port}
Other samplers
Section titled “Other samplers”- PR#5909 Use Caffeine for caching compiled scripts in JSR223 samplers instead of commons-collections4 LRUMap
General
Section titled “General”- PR#5792Add KeyStroke for start_no_timers (Start no pauses: CRTL+SHIFT+n)
- PR#5899Speed up CPU-bound tests by skipping
recoverRunningVersionfor elements that are shared between threads (the ones that implementNoThreadClone) - PR#5914Use
Locale.ROOTinstead of default locale fortoUpperCase, andtoLowerCaseto avoid surprises with dotless I intr_TRlocale - PR#5885Use Java’s
ServiceLoaderfor loading plugins instead of classpath scanning. It enables faster startup - PR#5788
FunctionPropertyno longer caches the value. Previously it cached the values based on iteration number only which triggered wrong results on concurrent executions. The previous behavior can be temporary restored withfunction.cache.per.iterationproperty. - PR#5920Improve HTTP HeaderManager performance when it contains many headers: skip reinitialization on each iteration
- PR#5920Use AtomicInteger and AtomicLong instead of synchronized primitives for JMeterContextService#numberOfThreads
- PR#5920Cache bean properties in
TestBeanHelperand avoid synchronization, so test plans withTestBean-based elements is faster - PR#5920Improve computation when many threads actively produce samplers by using
LongAdderand similar concurrency classes to avoid synchronization inCalculator - PR#5920Reduce synchronization contention on
AbstractTestElementthat are shared between threads (the ones that implementNoThreadClone) - PR#5934Added caching for date formatters for
__timefunction - PR#710Issue#5666Added Shortcut key event for Reset search:
ctrl + alt + F,cmd + alt + F - PR#5959
TestElementhas been migrated to Kotlin, so nullable types are annotated better - PR#5944Add PI for declaring
TestElementschemas so element properties are easier to access in code (seeTestElementSchema,TestElement#getSchema(),TestElement#getProps()) - PR#5944Enable usage of
\${...}expressions for checkbox controls (see context menus for checkboxes, however, the individual components should be adapted individually) - PR#678Experimental Kotlin and Java DSL for programmatic test plan generation (see Creating a plan with Kotlin DSL)
Bug fixes
Section titled “Bug fixes”HTTP Samplers and Test Script Recorder
Section titled “HTTP Samplers and Test Script Recorder”- PR#5901Fix NumberFormatException when counter is empty or not a digit on Proxy Settings panel
- PR#5987Issue#4546Encode unicode characters in filenames when sending files in HTTP Sampler
Other Samplers
Section titled “Other Samplers”- PR#5736Issue#5733Allow
SampleResult#setEndTimebe set inJSR223Sampler
Listeners
Section titled “Listeners”- Issue#5740PR#5741Fix Aggregated Graph component to cope with empty names of samplers
- Issue#5807Fix an
ArrayIndexOutOfBoundsExceptionon HTTP parameters line on special case when key and value are empty, i.e.: “k1=v1&=&k2=v2” - Issue#5654PR#5785 Fix
InfluxDBRawBackendListenerClientmissing data. Allow InfluxDB to insert multiple entries with the sametimestampbut with differentthreadName. Contributed by Victor Peralta (vperaltac at github)
Timers, Assertions, Config, Pre- & Post-Processors
Section titled “Timers, Assertions, Config, Pre- & Post-Processors”- PR#5717Add jsonpath string to JSON Path Assertion error message so the error is easier to understand
- PR#723Use correct number format on JSON Path Assertion. Contributed by andreaslind01 (andreaslind01 at gmail.com)
Report / Dashboard
Section titled “Report / Dashboard”- Bug 66140Guess the delimiter of the CSV source, when configured one seems wrong. This is in line with the behaviour of CSVSaveService.
Documentation
Section titled “Documentation”- Issue#5694Document changed formatter for __time(). A warning will be logged, if the code
uis found in the format string, as the meaning for that code has changed from day-of-week to year.
General
Section titled “General”- Bug 66157PR#719Correct theme for darklaf on rsyntaxtextarea
- Issue#5872PR#5874Trim name in Argument objects.
- PR#693Avoid wrong results when
Object.hashCode()happen to collide. UseIdentityHashMapinstead ofHashMapwhen key isTestElement - Refresh UI when dragging JMeter window from one monitor to another, so rich syntax text areas are properly editable after window movement
- PR#5984
AbstractTestElement#clonemight produce non-identical clones if element constructor adds a non-default property value
Non-functional changes
Section titled “Non-functional changes”- PR#725Add Chinese Simplified Translation for Open Model Thread Group
- PR#5710Add GitHub Issue templates
- PR#5910Use Caffeine for caching customizers in TestBeanGUI instead of commons-collections4 LRUMap
- PR#5713PR#5931Update Spock to 2.3-groovy-3.0 (from 2.1-groovy-3.0)
- Issue#5718Update Apache commons-text to 1.10.0 (from 1.9)
- PR#5731Update docs for
changeCasefunction.UPPERis the default - PR#5924Update Apache commons-io to 2.12.0 (from 2.11.0)
- PR#5921Update Jackson Core to 2.15.1 (from 2.13.3)
- PR#5921Update Jackson Databind to 2.15.1 (from 2.13.3)
- PR#5725Update Tika Parser to 1.28.5 (from 1.28.3)
- PR#5725Update JSoup to 1.16.1 (from 1.15.1)
- PR#5725Update Apache commons-net to 3.9.0 (from 3.8.0)
- PR#5725Update XStream to 1.4.20 (from 1.4.19)
- PR#5763PR#5814Updated Gradle to 8.1.1 (from 7.2)
- PR#5854Added Apache Httpclient5 5.1.3
- PR#5833Update Apache Freemarker to 2.3.32 (from 2.3.31)
- PR#5830Update Apache Groovy to 3.0.17 (from 3.0.11)
- PR#5862Update Apache Httpclient to 4.5.14 (from 4.5.13)
- PR#5880Update Apache Xalan to 2.7.3 (from 2.7.2)
- PR#5854Update Saxon-HE to 11.5 (from 11.5)
- PR#5840PR#5930Update accessors-smart to 2.4.11 (from 2.4.8)
- PR#5837Update asm to 9.5 (from 9.3)
- PR#5840PR#5930Update json-smart to 2.4.11 (from 2.4.8)
- PR#5814Update kotlin-stdlib to 1.8.21 (from 1.6.21)
- PR#5889PR#5918PR#5814Update kotlinx-coroutines-core to 1.8.21 (from 1.6.21)
- PR#5889PR#5918PR#5814Update kotlinx-coroutines-swing to 1.8.21 (from 1.6.21)
- PR#5907Update lets-plot-batik to 3.2.0 (from 2.1.1)
- PR#5907Update lets-plot-jvm to 4.3.0 (from 3.1.1)
- PR#5859Update log4j-1.2-api to 2.20.0 (from 2.17.2)
- PR#5859Update log4j-api to 2.20.0 (from 2.17.2)
- PR#5859Update log4j-core to 2.20.0 (from 2.17.2)
- PR#5859Update log4j-slf4j-impl to 2.20.0 (from 2.17.2)
- PR#5861Update neo4j-java-driver to 4.4.11 (from 4.4.6)
- PR#5853Update org.jetbrains:annotations to 24.0.1 (from 23.0.0)
- PR#5868PR#5886Update ph-commons to 10.2.4 (from 10.1.6)
- PR#5861Update reactive-streams to 1.0.4 (from 1.0.3)
- PR#5847Update rsyntaxtextarea to 3.3.3 (from 3.2.0)
- PR#5839Update svgSalamander to 1.1.4 (from 1.1.2.4)
- PR#5852Update xmlgraphics-commons to 2.8 (from 2.7)
- PR#5854Update xmlresolver to 4.6.4 (from 4.2.0)
- PR#693Added randomized test GitHub Actions matrix for better coverage of locales and time zones
- PR#5960Add OpenJDK JMH for creating microbenchmarks in JMeter code
- Issue#5961Deprecate TestElement.threadName as it is not related to TestElement
Thanks
Section titled “Thanks”We thank all contributors mentioned in bug and improvement sections above:
- Alex Schwartz, @alexsch01
- Andreas Lind, @andreaslind01
- Arnout Engelen, @raboof
- Clay Johnson, @clayburn
- David Getzlaff, @dgetzlaf
- Kai Lehmann, @lehmannk
- kaola89, @kaola89
- Matt Tansley, @matthewt-assurity
- Mohamed Ibrahim, @rollno748
- Ori Marko, @orimarko
- PJ Fanning, @pjfanning
- Sandra Thieme, @sandra-thieme
- Stefan Seide, @sseide
- Victor Peralta, @vperaltac
- Vincent DABURON, @vdaburon
We also thank bug reporters who helped us improve JMeter.
Apologies if we have omitted anyone else.