Skip to content

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.

Difficulty
intermediate
Guide type
reference
Estimated read time
5 min read
Last verified version
Verified JMeter 5.6
SectionChanges
Improvements23
Bug fixes15
Non-functional changes43
  • 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 Interruptible test elements on test stop
  • 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}
  • PR#5909 Use Caffeine for caching compiled scripts in JSR223 samplers instead of commons-collections4 LRUMap
  • PR#5792Add KeyStroke for start_no_timers (Start no pauses: CRTL+SHIFT+n)
  • PR#5899Speed up CPU-bound tests by skipping recoverRunningVersion for elements that are shared between threads (the ones that implement NoThreadClone)
  • PR#5914Use Locale.ROOT instead of default locale for toUpperCase, and toLowerCase to avoid surprises with dotless I in tr_TR locale
  • PR#5885Use Java’s ServiceLoader for loading plugins instead of classpath scanning. It enables faster startup
  • PR#5788FunctionProperty no 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 with function.cache.per.iteration property.
  • 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 TestBeanHelper and avoid synchronization, so test plans with TestBean-based elements is faster
  • PR#5920Improve computation when many threads actively produce samplers by using LongAdder and similar concurrency classes to avoid synchronization in Calculator
  • PR#5920Reduce synchronization contention on AbstractTestElement that are shared between threads (the ones that implement NoThreadClone)
  • PR#5934Added caching for date formatters for __time function
  • PR#710Issue#5666Added Shortcut key event for Reset search: ctrl + alt + F, cmd + alt + F
  • PR#5959TestElement has been migrated to Kotlin, so nullable types are annotated better
  • PR#5944Add PI for declaring TestElement schemas so element properties are easier to access in code (see TestElementSchema, 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)
  • 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
  • Issue#5740PR#5741Fix Aggregated Graph component to cope with empty names of samplers
  • Issue#5807Fix an ArrayIndexOutOfBoundsException on HTTP parameters line on special case when key and value are empty, i.e.: “k1=v1&=&k2=v2
  • Issue#5654PR#5785 Fix InfluxDBRawBackendListenerClient missing data. Allow InfluxDB to insert multiple entries with the same timestamp but with different threadName. 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)
  • Bug 66140Guess the delimiter of the CSV source, when configured one seems wrong. This is in line with the behaviour of CSVSaveService.
  • Issue#5694Document changed formatter for __time(). A warning will be logged, if the code u is found in the format string, as the meaning for that code has changed from day-of-week to year.
  • 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. Use IdentityHashMap instead of HashMap when key is TestElement
  • Refresh UI when dragging JMeter window from one monitor to another, so rich syntax text areas are properly editable after window movement
  • PR#5984AbstractTestElement#clone might produce non-identical clones if element constructor adds a non-default property value
  • 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 changeCase function. UPPER is 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

We thank all contributors mentioned in bug and improvement sections above:

We also thank bug reporters who helped us improve JMeter.

Apologies if we have omitted anyone else.

On this page