Important Fixes
##(schema)optional-marker semantics now apply to schema references — a null value passes #3006- The
methodkeyword resolves variables again (v2 regression) #2997 karate.sort(list)works with a single argument as documented — the key function is optional #2996get[0]with a JsonPath filter returns[]instead of erroring when the path traverses a null node #2995call/calloncewithread()no longer drops a callee-defined key that shares a name with a caller variable #2991- NDJSON response bodies are kept as raw text instead of being silently truncated by JSON parsing #2990
afterScenariohook scope is no longer frozen to the first scenario whenBackgroundusescalloncewith HTTP #2988setaccepts a multi-line docstring expression #2978text/plainresponses are no longer parsed as JSON just because the body starts with a brace #2977#(!^part)schema macro no longer false-passes on a list of objects #2976match contains only deeprespects element multiplicity instead of matching differing multisets #2975- Numeric
match ==no longer equates distinct integers above 2^53 #2974 karate.callSingle/karate.callarguments are passed consistently toclasspath:JS functions across scenarios #2973- OOM under parallel execution fixed — embedded-expression processing no longer deep-copies every variable in scope on every step #2972
- Report keeps per-step / HTTP detail for
karate.callSingle()calls made duringkarate-config.jsresolution #2967
New Features & Enhancements
- JS engine:
async/await/ Promise runtime withsetTimeoutsupport - JS engine: private class fields, methods and accessors;
WeakMap/WeakSet; labeled statements withbreak/continue - JS engine: significant performance work — slot-frame resolution for function locals, token caches, static binary operators
- Image: new pixelmatch comparison engine with cluster verdict and
ignoredBoxes#2987 - HTTP:
csv,yaml,tomlandmarkdownare recognized named content-types - Mocks: a Karate mock discloses itself on the wire via a
Karate-Mockresponse header - Gatling: failure detail aligned across the KO message and log output #2998
- Memory: a step's captured logs and embeds are released at feature end, and suite-exit no longer re-ships the whole run
- A dry run no longer prints as a green pass, and its result says so
- A missing
karate-config.jsis logged at INFO instead of WARN - Dependency bumps: jackson-bom 2.22.1
View the complete list of all issues fixed in this release.
Full Changelog: v2.1.1...v2.1.2
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)