Important Fixes
karate.match()inside a closure passed across feature files resolves variables in the calling scope, not the defining scope #2966karate.remove()now removes nested JSON fields #2953get[0]with a JsonPath filter on a missing property degrades to#notpresentinstead of erroring #2950call/calloncewithread()no longer returns the entire caller scope in the result #2949callonceinside acall read()no longer caches globally across invocations #2941- Escaped pipe
\|inExamplestables is treated as a literal pipe character #2943 paramwith a null value omits the query parameter instead of failing #2942afterFeaturenow fires as expected when running with multiple threads #2939karate.set(callSingle())withcall read()inBackgroundno longer freezes Scenario Outline row values #2934karate.set(callSingle())with the disk cache no longer wipes config-levelJava.type()variables #2933- Feature calls made from JS helper files show up in the summary report again #2928
- Gatling: feature errors are logged, ANSI escapes are stripped from log files, and
--no-coloris accepted #2937 --no-coloris applied and stripped before subcommand parsing #2936- Gatling: a scenario that fails before any HTTP request emits a synthetic KO instead of vanishing from the report
- Gatling: feature chaining repaired — the mutable
__karatemap is matched on read - A non-SSE GET against
HttpServeris rejected with a real status (405/404) rather than hanging - DOM nodes render as XML text instead of crashing json-smart
- Driver: page-load waits are bound to the navigation's
loaderId, closing a class of races on redirects and replaced loaders - Driver: each pooled slot gets its own browser context, and tab enumeration is scoped to the driver's own context
New Features & Enhancements
- The HTML report opens far faster and uses much less memory on large features — syntax highlighting is deferred until a block is viewed #2938
- Failures pinpoint the feature-file location, with a richer failure console #2952
- Driver:
select()fires the full real-selection event sequence (input,change,blur,focusout) - Driver: new
CdpDriver.objectId(locator)for locator to CDP-node resolution - CDP: named init-script registry, plus
DOM.getFrameOwner/describeNodeand script/binding injection wrappers - WebSocket: subprotocol negotiation support in
WsClient - HTTP: bind-host support on
HttpServerfor localhost-only hardening BootLoader.bootOnly,BootBinding.getGlobals()andConfigLoader.configOnly— evaluate boot and config without running features- Report: kind-labelled embed badges, skipped tiles, and Scenario Outline badges
- Dependency bumps: Selenium, the Scala / Gatling plugins, and central-publishing-maven-plugin
View the complete list of all issues fixed in this release.
Full Changelog: v2.1.0...v2.1.1
Important: refer 2.0.0 release notes for those upgrading from 1.X
Artifacts
- Maven artifacts
- Standalone JAR (download below)
- CVE / SBOM report (download below)