Releases: karatelabs/karate
v2.0.5
Important Fixes
callto a feature with isolated scope now preserves functions inherited from the calling scope #2805- Closures resolve via lexical scope across
callboundaries #2802 scenarioNamefilter no longer leaks into called features #2804- Top-level semicolon scan now tracks
(),{},[]depth β fixes spurious splits in multi-statementscript()payloads #2803 W3cDrivermulti-statement scripts no longer lose everything after the first statement #2803beforeScenario/afterScenariohooks are skipped for called features (matches documented hook scope)waitUntilnow routes JS callables throughSupplier, andJsFunction.toString()returns a stable form- Redundant
exists()re-check skipped after verified element actions - Console summary now shows the failed Gherkin source line
- JSONL feature/scenario events now carry
callDepth,error,skipped
New Features & Enhancements
- Broad JS engine compatibility and error-reporting improvements, backed by a new
karate-js-test262conformance harness #2800 - JSONL run records now live-tail during execution and the partial file is preserved on abort
- Per-target
url/title/activeexposed viaCdpDriver.getTargetInfos - Tag selector that excludes every scenario in a feature now pre-filters the whole feature
View the complete list of all issues fixed in this release.
Full Changelog: v2.0.4...v2.0.5
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)
v2.0.4
Important Fixes
- JUnit XML and Cucumber JSON reports now strip ANSI escape codes from step logs #2799
configure afterScenario/beforeScenarionow fire correctly for regular scenarios, including on scenario failure #2796 #2540afterScenariohook: match failures now fail the scenario #2699screenshot()from Gherkin now embeds into the HTML report by default #2798script()no longer throws when a JS dialog opens whileRuntime.evaluateis pending #2797- XML subtree extraction now carries ancestor
xmlns:*declarations β fixes SOAP envelope namespace comparison #2469 - HTML report content stays complete regardless of SLF4J log level
- JS:
breakinsideswitchis now confined and no longer escapes enclosing blocks - Java host-function exceptions are now catchable from JS
New Features & Enhancements
beforeScenariohook introduced #2239karate.dryRunexposed to feature files; dry-run now enforced at runtimeresponseStatusTextsurfaces the HTTP response reason phrase #2591- Gatling report: sub-group results now aggregated correctly #2681
HttpLoggeroutput split across INFO/DEBUG/TRACE tiers for cleaner logs- New
karate.serverlogger for embedded server request/response traces
View the complete list of all issues fixed in this release.
Full Changelog: v2.0.3...v2.0.4
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)
v2.0.3
Important Fixes
- Cookie values now preserve their original quoted/unquoted form on replay (
Set-Cookieround-trip) #2779 encodeURIComponent/decodeURIComponent/encodeURI/decodeURInow available in feature JS expressions #2788driver.intercept()restored onCdpDriverwith mock and inline handler support #2787- Data-table cells now emitted as plain strings in Cucumber JSON report output #2785
karate-config.jsprocessing failures no longer swallowed silently #2780- Extraneous / redundant slashes in feature and resource paths normalized #2732
- JS parser:
} else {and} catch {after a block now parse correctly (ES6 compliance) - JS error messages now report JS type names instead of Java class names
- Fixed 0-indexed line numbers in JS error messages
- Fixed
String.split()literal separator; addedisNaN/isFiniteglobals - Added missing ES6
Date/String/consolemethods
New Features & Enhancements
- Fail-fast:
abortSuiteOnFailurenow interrupts in-flight scenarios on first failure #2786 - mTLS:
configure sslwithkeyStorehonored by the v2 HTTP client;MockServerclient-auth supported #2789 request.proceed()in JS-file mocks, mirroringkarate.proceed()#2344- HTML report: skipped-scenario tracking, totals row, and pass-% #2340
- Wildcard non-proxy hosts + general proxy support #1851
- Scenario filter by exact name via
-n/--name#2522 - Repeatable
-P/--pathoption onkarate runfor multi-path runs - Tab tracking for popups / new tabs:
drainOpenedTargets()+switchPageById() isVisible()overlay detection viaelementFromPoint+pointer-eventscheck- Pooled drivers that fail a post-reset liveness probe are recycled automatically
View the complete list of all issues fixed in this release.
Full Changelog: v2.0.2...v2.0.3
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)
v2.0.2
Important Fixes
- Cookie values with special characters now correctly quoted per RFC 6265 #2779
- Embedded expressions (
#()) in JSON files now resolved afterread()#2778 - Fixed
0 == nullreturning true β ES6 compliance for equality and match with parens #2777 print,karate.log(), and HTTP logs now appear in console output and in called features in HTML reports #2776 #2774- Docstring with
@sign no longer breaks Scenario Outline parsing #2775 - Tag filter on
Examplesblocks no longer skips entire Scenario Outline #2773 - Fixed flaky browser frame test by handling
Page.frameDetachedand pruning stale frames
View complete list of all issues fixed in this release.
Full Changelog: v2.0.1...v2.0.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)
v2.0.1
Important: 2.0.2 is available.
Important Fixes
- HTML / JSON reports don't include ANSI codes any more
- UI / driver testing issues and v1 compatibility fixed
- Java interop edge cases / varargs / v1 compatibility
- Dependencies upgraded / CVE resolutions
View complete list of all issues fixed in this release.
Full Changelog: v2.0.0...v2.0.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)
v2.0.0
Karate 2.0.0
Important: 2.0.5 is available.
The first major release of Karate v2 β a ground-up rewrite of the test automation framework, built on Java 21+ virtual threads with a custom JavaScript engine.
Highlights
- Custom JS Engine β embedded JavaScript engine (
karate-js) replaces GraalJS. Minimal external dependencies, faster startup, native Java interop - Virtual Threads β parallel test execution on Java 21+ virtual threads. No thread pool tuning needed
- W3C WebDriver β full cross-browser support for Chrome, Firefox, Safari, and Edge alongside the existing CDP driver
- Browser Pooling β automatic browser instance reuse across parallel scenarios via
PooledDriverProvider - Karate CLI β single binary launcher, no Maven or Gradle required. Install from VS Code with one click:
- Rewritten CDP Driver β auto-wait, Shadow DOM support, smarter element location
- Gatling Integration β Java-only DSL for load testing (
karateProtocol(),karateFeature()) - Interactive HTML Reports β Alpine.js dashboard with timeline view, tag filtering, and nested call display
- Declarative Auth β
configure authfor Basic, Bearer, and OAuth2 with automatic token refresh - Soft Assertions β All JSON errors collected instead of first assertion failure.
continueOnStepFailuremode for features - Built-in Utilities β
karate.faker.*for test data,karate.expect()for Chai-style assertions
Documentation
- Migration Guide (v1 β v2)
- What's New in v2
- Install & Get Started
- Browser Automation (CDP + WebDriver)
- Design Principles
- VS Code Extension
- IntelliJ Plugin
- Karate CLI / Universal Installer
Breaking Changes
See the Migration Guide for details.
Artifacts Released
- Maven artifacts
- Standalone JAR (download below)
- CVE / SBOM report (download below)
v2.0.0.RC2
Refer: v1 to v2 Migration Guide.
v1.5.2
No Breaking Changes
This release is mainly to
- ensure Karate works with the latest Java versions > 21
- update Gatling integration to avoid a warning in reports
- upgrade multiple library / dependencies because of CVEs or common conflicts.
Meet the Karate team in Paris on December 11, 2025 ! (Register here)
Fix List
Here is a complete list of all issues fixed in this release.
What's Changed
- #2641 introduce @fail tag to mark tests which are expected to fail by @dve in #2643
- Add an optional environment variable for docker images in order to easily and globally configure additional startup flags by @abdallahghdiri in #2649
- Support for Case-Sensitive HTTP Headers in Karate Mock Server by @srmppn in #2653
- [KeepOriginalHeaders] update document by @srmppn in #2656
- #2660 fail annotation in xml report by @dve in #2661
- Upgrade json-smart from 2.5.1 to 2.5.2 fixing CVE-2024-57699 by @julianladisch in #2663
- #2667 result count by @dve in #2668
- Dated version for Karate Gatling integration #2677) Feature/gatling 3.11.5 by @CPogX in #2678
- fix #2670 by @ThierryLejeune in #2674
- Issue 2482: accept empty cookies names by @cranberrysoft in #2676
- Karate UI - javascript error: Unexpected token #2665 xpath parenthesis by @CPogX in #2675
- Add WebSocket frame aggregation support by @jon-armen in #2693
- clarify mvn quickstart command syntax for Windows PowerShell by @markhughes321 in #2695
- 2515 third revision logic in matchoperator by @f-delahaye in #2702
- 2707 by @f-delahaye in #2709
- Fix forward slashes being turned into escape by @srmppn in #2714
A Big Thank You
To all contributors, especially first-time contributors to Karate.
New Contributors
- @dve made their first contribution in #2643
- @abdallahghdiri made their first contribution in #2649
- @srmppn made their first contribution in #2653
- @cranberrysoft made their first contribution in #2676
- @markhughes321 made their first contribution in #2695
Full Changelog: v1.5.1...v1.5.2
Artifacts Released
- Maven artifacts
- Standalone JAR (download below)
- Karate-Robot JAR (download below)
- Docker Image
- Repository SBOM report (download below)
v1.5.1
No Breaking Changes
This release is mainly to upgrade a couple of library / dependencies because of CVEs or common conflicts.
- Upgrade netty due to CVE-2024-47535
- Update classgraph to solve Quarkus related ExceptionInInitializerError
Fix List
Here is a complete list of all issues fixed in this release.
What's Changed
- Fixed readme for karate-gatling by @debasisj in #2608
- Bump commons-io:commons-io from 2.7 to 2.14.0 in /karate-demo by @dependabot in #2614
- Update Chrome DevTools Protocol by @oxsoft in #2590
- Update headless option by @oxsoft in #2592
- Upgrade JaCoCo to 0.8.12 by @Godin in #2635
- handle mp4 like any other media in Embed toMap() by @CPogX in #2638
- Add afterScenarioOutline & karate.scenarioOutline by @OwenK2 in #2636
- Improve readme by @alaguna95 in #2640
A Big Thank You
To all contributors, especially first-time contributors to Karate.
New Contributors
- @debasisj made their first contribution in #2608
- @oxsoft made their first contribution in #2590
- @abdallah-rashwan made their first contribution in #2628
- @Godin made their first contribution in #2635
- @CPogX made their first contribution in #2638
- @OwenK2 made their first contribution in #2636
- @alaguna95 made their first contribution in #2640
Full Changelog: v1.5.0...v1.5.1
Artifacts Released
- Maven artifacts
- Standalone JAR (download below)
- Karate-Robot JAR (download below)
- Docker Image
- Repository SBOM report (download below)
v1.5.0
Breaking Changes
- Karate 1.5.0 requires Java 17
- The Maven group-id has changed from
com.intuit.karatetoio.karatelabs
So the only change should be to your pom.xml or gradle.build.
There are no other syntax or behavior breaking changes, so this should be a smooth upgrade for your tests. The Java APIs (package names) have not changed. They will change only in a future release (most likely 1.6.0).
Notable Improvements
Fix List
Here is a complete list of all issues fixed in this release.
Full Changelog: v1.4.1...v1.5.0
A Big Thank You
To all contributors, especially first-time contributors to Karate.
And to all our users and community. We are proud to see Karate cross the 8000 star mark on GitHub π β π
New Contributors
- @fabio-andre-rodrigues made their first contribution in #2402
- @san70sh made their first contribution in #2420
- @f-delahaye made their first contribution in #2421
- @Songshen1996 made their first contribution in #2428
- @ciandt-crodrigues made their first contribution in #2440
- @sergy8612 made their first contribution in #2445
- @bouncysteve made their first contribution in #2452
- @codehackerr made their first contribution in #2477
- @AKushWarrior made their first contribution in #2505
- @dustinsand made their first contribution in #2532
- @brown-kaew made their first contribution in #2535
- @SirJerric made their first contribution in #2555
- @jandry made their first contribution in #2424
- @daviddavidgit made their first contribution in #2573
- @xloypaypa made their first contribution in #2570
Artifacts Released
- Maven artifacts
- Standalone JAR (download below)
- Karate-Robot JAR (download below)
- Docker Image
- Repository SBOM report (download below)