Skip to content

Releases: karatelabs/karate

v2.0.5

24 Apr 10:29

Choose a tag to compare

Important Fixes

  • call to a feature with isolated scope now preserves functions inherited from the calling scope #2805
  • Closures resolve via lexical scope across call boundaries #2802
  • scenarioName filter no longer leaks into called features #2804
  • Top-level semicolon scan now tracks (), {}, [] depth β€” fixes spurious splits in multi-statement script() payloads #2803
  • W3cDriver multi-statement scripts no longer lose everything after the first statement #2803
  • beforeScenario / afterScenario hooks are skipped for called features (matches documented hook scope)
  • waitUntil now routes JS callables through Supplier, and JsFunction.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-test262 conformance harness #2800
  • JSONL run records now live-tail during execution and the partial file is preserved on abort
  • Per-target url / title / active exposed via CdpDriver.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

v2.0.4

22 Apr 06:13

Choose a tag to compare

Important Fixes

  • JUnit XML and Cucumber JSON reports now strip ANSI escape codes from step logs #2799
  • configure afterScenario / beforeScenario now fire correctly for regular scenarios, including on scenario failure #2796 #2540
  • afterScenario hook: match failures now fail the scenario #2699
  • screenshot() from Gherkin now embeds into the HTML report by default #2798
  • script() no longer throws when a JS dialog opens while Runtime.evaluate is 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: break inside switch is now confined and no longer escapes enclosing blocks
  • Java host-function exceptions are now catchable from JS

New Features & Enhancements

  • beforeScenario hook introduced #2239
  • karate.dryRun exposed to feature files; dry-run now enforced at runtime
  • responseStatusText surfaces the HTTP response reason phrase #2591
  • Gatling report: sub-group results now aggregated correctly #2681
  • HttpLogger output split across INFO/DEBUG/TRACE tiers for cleaner logs
  • New karate.server logger 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

v2.0.3

20 Apr 03:53

Choose a tag to compare

Important Fixes

  • Cookie values now preserve their original quoted/unquoted form on replay (Set-Cookie round-trip) #2779
  • encodeURIComponent / decodeURIComponent / encodeURI / decodeURI now available in feature JS expressions #2788
  • driver.intercept() restored on CdpDriver with mock and inline handler support #2787
  • Data-table cells now emitted as plain strings in Cucumber JSON report output #2785
  • karate-config.js processing 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; added isNaN / isFinite globals
  • Added missing ES6 Date / String / console methods

New Features & Enhancements

  • Fail-fast: abortSuiteOnFailure now interrupts in-flight scenarios on first failure #2786
  • mTLS: configure ssl with keyStore honored by the v2 HTTP client; MockServer client-auth supported #2789
  • request.proceed() in JS-file mocks, mirroring karate.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 / --path option on karate run for multi-path runs
  • Tab tracking for popups / new tabs: drainOpenedTargets() + switchPageById()
  • isVisible() overlay detection via elementFromPoint + pointer-events check
  • 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

v2.0.2

09 Apr 04:32

Choose a tag to compare

Important Fixes

  • Cookie values with special characters now correctly quoted per RFC 6265 #2779
  • Embedded expressions (#()) in JSON files now resolved after read() #2778
  • Fixed 0 == null returning 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 Examples blocks no longer skips entire Scenario Outline #2773
  • Fixed flaky browser frame test by handling Page.frameDetached and 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

v2.0.1

07 Apr 07:04

Choose a tag to compare

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

v2.0.0

26 Mar 05:57

Choose a tag to compare

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 auth for Basic, Bearer, and OAuth2 with automatic token refresh
  • Soft Assertions β€” All JSON errors collected instead of first assertion failure. continueOnStepFailure mode for features
  • Built-in Utilities β€” karate.faker.* for test data, karate.expect() for Chai-style assertions

Documentation

Breaking Changes

See the Migration Guide for details.

Artifacts Released

v2.0.0.RC2

24 Mar 05:22

Choose a tag to compare

v2.0.0.RC2 Pre-release
Pre-release

v1.5.2

30 Nov 07:36

Choose a tag to compare

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

A Big Thank You

To all contributors, especially first-time contributors to Karate.

New Contributors

Full Changelog: v1.5.1...v1.5.2

Artifacts Released

v1.5.1

06 Jan 18:01

Choose a tag to compare

No Breaking Changes

This release is mainly to upgrade a couple of library / dependencies because of CVEs or common conflicts.

Fix List

Here is a complete list of all issues fixed in this release.

What's Changed

A Big Thank You

To all contributors, especially first-time contributors to Karate.

New Contributors

Full Changelog: v1.5.0...v1.5.1

Artifacts Released

v1.5.0

05 Aug 15:36

Choose a tag to compare

Breaking Changes

  • Karate 1.5.0 requires Java 17
  • The Maven group-id has changed from com.intuit.karate to io.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

Artifacts Released