Karate v0.8.0 Release Notes
Release Date: 2018-07-16 // almost 6 years ago-
๐ฅ Breaking Changes
This first one only applies if you are using the stand-alone JAR. Previously the command-line option
-t
was used to specify the feature file to be run - but now it is used to specify Cucumber tags. There are some big improvements - parallel execution and even reporting are built into the single binary ! Refer to the documentation for more details.๐จ Second: the
com.intuit.karate.Debug
class has been removed - while refactoring the engine to get Gatling support to work, but we are pretty sure no one was using this. We can bring this back if needed.Introducing: Karate-Gatling
๐ Re-use API functional tests as performance tests !
๐ We are releasing this ! This is the first version, but we have people who tried it report back and it seems to be stable. Here is a video of what to expect: link. And here is the documentation. Your feedback can make this better, and we are committed to release minor version upgrades when needed as we evolve this.
๐ Notable Enhancements and Fixes
Parallel Runner Memory Usage
โ To pick one highlight - it is the greatly improved memory usage of the parallel runner. Earlier, teams that had many tests would run into an Out Of Memory error and had to reduce or switch-off log levels to work-around.
map
,filter
andforEach
โ Also
map
,filter
andforEach
operations have been introduced on the built-inkarate
JS helper object. This will make it easier to work with JSON arrays or list-like data - very useful for filtering or even transforming one kind of JSON into another. This demo file has some examples.Stand-alone JAR has everything
๐ This makes Karate more accessible for teams that are not really into Java and don't want to use a Java IDE or Maven project structure. The stand-alone JAR can now even run tests in parallel from the command-line and the only pre-requisite is a JRE. You can now recommend Karate for JavaScript, .NET or Python developers without holding back ! This is great for demos as well. Note that the binary has been renamed to
karate-<version>.jar
to signify that it has everything in it. Refer to the documentation for all the details.karate-netty
dependency bundles Netty dependenciesโ The test-doubles (karate-netty) project now "shades" the netty JAR which means you can combine Karate mocks into Maven or Gradle projects which already use netty - without any library conflict issues.
Closed Issues Register
- โ #329 Eclipse JUnit test results would show as "unrooted"
- ๐ป #306 Karate UI improvements - thanks to @RavinderSinghMaan
- ๐ #319 Gradle conventions are honored for build output directory
- โ
#337 Test-Doubles - introduced
bodyPath
helper to make it easier to route incoming requests based on payload content - #341 XML attribute embedded expressions would not work for empty elements
- โฌ๏ธ #342 Apache bug in HTTP headers needs upgrade
- #346 Complex JSON schema bug in
match each
- ๐ #355 Dynamic XPath support for XML
- #370 Standalone JAR can now run multiple features in parallel and generate HTML reports !
- #378
karate.match()
implemented, now you can programmatically do a match - #379 JSON / HTML reporting improved for "called" features
- ๐ #381 Support for HTTP proxy exceptions - thanks to @xxxyyyz
- #387 Clean way to over-ride config in dev mode without having to check-in sensitive values
- โ #397 Option to disable / switch on-off HTTP logging during a test
- ๐ #407
remove
had no effect on XML attributes - ๐ #408 Removed hard-dependency on logback
- #415
multipart fields
introduced that can take a JSON with multiple dynamic values - #417 Java API to select features at run-time for parallel / execution
- #411 Clean way to stop karate-netty server via admin HTTP end-point
- #421 Cucumber Outlines within called features would abort on the first example that failed
- ๐ #439 Karate version now appears in the logs to help bug-reporters
- #452
#notpresent
will work as a JsonPath or XPath match even if it is the only RHS