diff --git a/README.md b/README.md
index 4ebaf322b..19ebb2cbb 100755
--- a/README.md
+++ b/README.md
@@ -182,7 +182,8 @@ And you don't need to create additional Java classes for any of the payloads tha
| match contains
| match contains only
| match contains any
- | match contains deep
+ | match contains deep
+ | match contains only deep
| match !contains
| match each
| match header
@@ -267,6 +268,7 @@ And you don't need to create additional Java classes for any of the payloads tha
* Easily invoke JDK classes, Java libraries, or re-use custom Java code if needed, for [ultimate extensibility](#calling-java)
* Simple plug-in system for [authentication](#http-basic-authentication-example) and HTTP [header management](#configure-headers) that will handle any complex, real-world scenario
* [Cross-browser Web UI automation](karate-core) so that you can test *all* layers of your application with the same framework
+* Visual Validation via the built-in [image comparison](#compare-image) capabilities
* Cross platform [Desktop Automation](karate-robot) that can be [mixed into Web Automation flows](https://twitter.com/ptrthomas/status/1215534821234995200) if needed
* Option to invoke via a [Java API](#java-api), which means that you can easily [mix Karate into Java projects or legacy UI-automation suites](https://stackoverflow.com/q/47795762/143475)
* [Save significant effort](https://twitter.com/ptrthomas/status/986463717465391104) by re-using Karate test-suites as [Gatling performance tests](karate-gatling) that *deeply* assert that server responses are accurate under load
@@ -317,7 +319,7 @@ All you need is available in the [`karate-core`](https://search.maven.org/artifa
com.intuit.karate
karate-junit5
- 1.2.0
+ 1.3.0
test
```
@@ -328,7 +330,7 @@ If you want to use [JUnit 4](#junit-4), use `karate-junit4` instead of `karate-j
Alternatively for [Gradle](https://gradle.org):
```yml
- testCompile 'com.intuit.karate:karate-junit5:1.2.0'
+ testCompile 'com.intuit.karate:karate-junit5:1.3.0'
```
Also refer to the wiki for using [Karate with Gradle](https://github.com/intuit/karate/wiki/Gradle).
@@ -344,7 +346,7 @@ You can replace the values of `com.mycompany` and `myproject` as per your needs.
mvn archetype:generate \
-DarchetypeGroupId=com.intuit.karate \
-DarchetypeArtifactId=karate-archetype \
--DarchetypeVersion=1.2.0 \
+-DarchetypeVersion=1.3.0 \
-DgroupId=com.mycompany \
-DartifactId=myproject
```
@@ -1540,6 +1542,8 @@ Then status 202
## Compare Image
Karate provides a flexible way to compare two images to determine if they are the same or similar. This is especially useful when capturing screenshots during tests and comparing against baseline images that are known to be correct.
+> A stand-alone example can be found here: [`examples/image-comparison`](examples/image-comparison) along with a [video explanation](https://youtu.be/wlvmNBraP60).
+
Below is a simple example that will compare a `baseline` image to a more recent `latest` image. An image comparison UI will also be embedded into the Karate HTML report with detailed information about any differences between the two images.
```cucumber
@@ -1613,7 +1617,6 @@ function (customConfigJson, config) {
* configure imageComparison = { hideUiOnSuccess: true }
```
-
Image comparison engines can also be customized:
```cucumber
@@ -2936,6 +2939,14 @@ Scenario: recurse nested array
> the NOT operator e.g. `!contains deep` is not yet supported, please contribute code if you can.
+#### `match contains only deep`
+This is exactly like [`match ==`](#match) but the order of arrays does not matter. All arrays no matter the "depth" will be checked in this way.
+
+```cucumber
+* def response = { foo: [ 'a', 'b' ] }
+* match response contains only deep { foo: [ 'b', 'a' ] }
+```
+
## Validate every element in a JSON array
### `match each`
The `match` keyword can be made to iterate over all elements in a JSON array using the `each` modifier. Here's how it works:
diff --git a/examples/consumer-driven-contracts/pom.xml b/examples/consumer-driven-contracts/pom.xml
index 1a37c8d98..bd4861960 100755
--- a/examples/consumer-driven-contracts/pom.xml
+++ b/examples/consumer-driven-contracts/pom.xml
@@ -19,7 +19,7 @@
2.22.2
2.3.4.RELEASE
5.7.0
- 1.2.0
+ 1.3.0
diff --git a/examples/gatling/build.gradle b/examples/gatling/build.gradle
index d0d8e8350..37f18bf93 100644
--- a/examples/gatling/build.gradle
+++ b/examples/gatling/build.gradle
@@ -3,7 +3,7 @@ plugins {
}
ext {
- karateVersion = '1.2.0'
+ karateVersion = '1.3.0'
}
dependencies {
diff --git a/examples/image-comparison/README.md b/examples/image-comparison/README.md
index 82923bd13..dcc7a36e4 100644
--- a/examples/image-comparison/README.md
+++ b/examples/image-comparison/README.md
@@ -1,5 +1,5 @@
# Karate Image Comparison
-This project is designed to demonstrate basic usage of the [Image Comparison](https://github.com/karatelabs/karate/#compare-image) feature.
+This project is designed to demonstrate basic usage of the [Image Comparison](https://github.com/karatelabs/karate/#compare-image) feature. You can also watch a video explanation [here](https://youtu.be/wlvmNBraP60).
## Overview
The [Image Comparison](https://github.com/karatelabs/karate/#compare-image) feature was introduced in [Karate 1.3.0](https://github.com/karatelabs/karate/wiki/1.3.0-Upgrade-Guide).
diff --git a/examples/image-comparison/pom.xml b/examples/image-comparison/pom.xml
index da57d0a86..bfdd1d0c2 100644
--- a/examples/image-comparison/pom.xml
+++ b/examples/image-comparison/pom.xml
@@ -11,7 +11,7 @@
UTF-8
1.8
3.8.1
- 1.3.0-SNAPSHOT
+ 1.3.0
diff --git a/examples/jobserver/build.gradle b/examples/jobserver/build.gradle
index 761c9ff2b..9b1bd6928 100644
--- a/examples/jobserver/build.gradle
+++ b/examples/jobserver/build.gradle
@@ -3,7 +3,7 @@ plugins {
}
ext {
- karateVersion = '1.2.0'
+ karateVersion = '1.3.0'
}
dependencies {
diff --git a/examples/jobserver/pom.xml b/examples/jobserver/pom.xml
index 19af7ebe2..c408f26ee 100644
--- a/examples/jobserver/pom.xml
+++ b/examples/jobserver/pom.xml
@@ -11,7 +11,7 @@
UTF-8
1.8
3.8.1
- 1.2.0
+ 1.3.0
diff --git a/examples/mobile-test/pom.xml b/examples/mobile-test/pom.xml
index ae5e7ce25..2b1080144 100644
--- a/examples/mobile-test/pom.xml
+++ b/examples/mobile-test/pom.xml
@@ -12,7 +12,7 @@
1.8
3.8.1
2.22.2
- 1.2.0
+ 1.3.0
diff --git a/examples/mock-servlet/pom.xml b/examples/mock-servlet/pom.xml
index cffb39213..2785452f4 100644
--- a/examples/mock-servlet/pom.xml
+++ b/examples/mock-servlet/pom.xml
@@ -12,7 +12,7 @@
1.8
3.6.0
2.5.12
- 1.2.0
+ 1.3.0
diff --git a/examples/profiling-test/pom.xml b/examples/profiling-test/pom.xml
index 51db68cd4..bc3a8ddb3 100755
--- a/examples/profiling-test/pom.xml
+++ b/examples/profiling-test/pom.xml
@@ -11,7 +11,7 @@
UTF-8
1.8
3.6.0
- 1.2.0
+ 1.3.0
4.1.1
diff --git a/examples/robot-test/pom.xml b/examples/robot-test/pom.xml
index 2e9ef85bc..b42d2ed50 100644
--- a/examples/robot-test/pom.xml
+++ b/examples/robot-test/pom.xml
@@ -12,7 +12,7 @@
1.8
3.8.1
2.22.2
- 1.2.0
+ 1.3.0
diff --git a/examples/ui-test/pom.xml b/examples/ui-test/pom.xml
index 65baf5132..88e09afc4 100644
--- a/examples/ui-test/pom.xml
+++ b/examples/ui-test/pom.xml
@@ -11,7 +11,7 @@
UTF-8
1.8
3.6.0
- 1.2.0
+ 1.3.0
diff --git a/jbang-catalog.json b/jbang-catalog.json
index 69df9cbe0..64f0e4b4a 100644
--- a/jbang-catalog.json
+++ b/jbang-catalog.json
@@ -2,7 +2,7 @@
"catalogs": {},
"aliases": {
"karate": {
- "script-ref": "com.intuit.karate:karate-core:1.2.0:all"
+ "script-ref": "com.intuit.karate:karate-core:1.3.0:all"
}
}
}
\ No newline at end of file
diff --git a/karate-archetype/pom.xml b/karate-archetype/pom.xml
index 0f2d8aaa0..a0c0d9a9e 100755
--- a/karate-archetype/pom.xml
+++ b/karate-archetype/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-archetype
jar
diff --git a/karate-archetype/src/main/resources/archetype-resources/pom.xml b/karate-archetype/src/main/resources/archetype-resources/pom.xml
index 1f51b95f1..c84541c5d 100755
--- a/karate-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/karate-archetype/src/main/resources/archetype-resources/pom.xml
@@ -12,7 +12,7 @@
1.8
3.8.1
2.22.2
- 1.2.0
+ 1.3.0
diff --git a/karate-core/pom.xml b/karate-core/pom.xml
index 988c30ba6..01c0a3a21 100644
--- a/karate-core/pom.xml
+++ b/karate-core/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-core
jar
diff --git a/karate-core/src/test/resources/karate-map.jpg b/karate-core/src/test/resources/karate-map.jpg
index 83ebb0f58..23a73c40c 100644
Binary files a/karate-core/src/test/resources/karate-map.jpg and b/karate-core/src/test/resources/karate-map.jpg differ
diff --git a/karate-demo/pom.xml b/karate-demo/pom.xml
index 2adaf0792..f10b00341 100644
--- a/karate-demo/pom.xml
+++ b/karate-demo/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-demo
diff --git a/karate-e2e-tests/pom.xml b/karate-e2e-tests/pom.xml
index 493a3d027..cde332367 100755
--- a/karate-e2e-tests/pom.xml
+++ b/karate-e2e-tests/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-e2e-tests
jar
diff --git a/karate-gatling/pom.xml b/karate-gatling/pom.xml
index d89ebcc1e..14653698f 100644
--- a/karate-gatling/pom.xml
+++ b/karate-gatling/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-gatling
jar
diff --git a/karate-junit4/pom.xml b/karate-junit4/pom.xml
index 817ad9121..40e602424 100755
--- a/karate-junit4/pom.xml
+++ b/karate-junit4/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-junit4
jar
diff --git a/karate-junit5/pom.xml b/karate-junit5/pom.xml
index ece6ebe93..579cdbd22 100755
--- a/karate-junit5/pom.xml
+++ b/karate-junit5/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-junit5
jar
diff --git a/karate-mock-servlet/pom.xml b/karate-mock-servlet/pom.xml
index 41a548182..360d9dd2c 100644
--- a/karate-mock-servlet/pom.xml
+++ b/karate-mock-servlet/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-mock-servlet
diff --git a/karate-robot/pom.xml b/karate-robot/pom.xml
index 693b52850..d2e6fca7a 100644
--- a/karate-robot/pom.xml
+++ b/karate-robot/pom.xml
@@ -5,7 +5,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
karate-robot
jar
diff --git a/pom.xml b/pom.xml
index d5fe740e8..fa582795c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.intuit.karate
karate-parent
- 1.3.0-SNAPSHOT
+ 1.3.0
pom
${project.artifactId}