Download Latest Version v2.1.1 source code.zip (2.6 MB)
Email in envelope

Get an email when there's a new version of Karate

Home / v2.1.1
Name Modified Size InfoDownloads / Week
Parent folder
karate-2.1.1.jar 2026-07-15 12.1 MB
cve-sbom-report.html 2026-07-15 48.2 kB
README.md 2026-07-15 3.5 kB
v2.1.1 source code.tar.gz 2026-07-15 1.8 MB
v2.1.1 source code.zip 2026-07-15 2.6 MB
Totals: 5 Items   16.5 MB 4

Important Fixes

  • karate.match() inside a closure passed across feature files resolves variables in the calling scope, not the defining scope [#2966]
  • karate.remove() now removes nested JSON fields [#2953]
  • get[0] with a JsonPath filter on a missing property degrades to #notpresent instead of erroring [#2950]
  • call / callonce with read() no longer returns the entire caller scope in the result [#2949]
  • callonce inside a call read() no longer caches globally across invocations [#2941]
  • Escaped pipe \| in Examples tables is treated as a literal pipe character [#2943]
  • param with a null value omits the query parameter instead of failing [#2942]
  • afterFeature now fires as expected when running with multiple threads [#2939]
  • karate.set(callSingle()) with call read() in Background no longer freezes Scenario Outline row values [#2934]
  • karate.set(callSingle()) with the disk cache no longer wipes config-level Java.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-color is accepted [#2937]
  • --no-color is 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 __karate map is matched on read
  • A non-SSE GET against HttpServer is 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 / describeNode and script/binding injection wrappers
  • WebSocket: subprotocol negotiation support in WsClient
  • HTTP: bind-host support on HttpServer for localhost-only hardening
  • BootLoader.bootOnly, BootBinding.getGlobals() and ConfigLoader.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: https://github.com/karatelabs/karate/compare/v2.1.0...v2.1.1

Important: refer 2.0.0 release notes for those upgrading from 1.X

Artifacts

Source: README.md, updated 2026-07-15