GET Example 2: In the Given section we are using path/query parameter. Note that def can be used to assign a feature to a variable. This video explain how to do UI Automation using Karate DSL.If you like this video please do subscribe to my channel and keep watching ! If the second HTTP call above expects headers to be set by my-headers.js - which in turn depends on the authToken variable being updated, you will need to duplicate the line * configure headers = read('classpath:my-headers.js') from the caller feature here as well. The contents of my-signin.feature are shown below. @smoke @module=one @module=two etc. This is very useful to filter the results that match a desired condition - typically a text comparison. If you use commas (instead of concatenating strings using +), Karate will pretty-print variables, which is what you typically want when dealing with JSON or XML. Karate has a set of Java API-s that expose the HTTP, JSON, data-assertion and UI automation capabilities. e.g. So if you really wanted to assert that the HTTP response body is well-formed JSON or XML you can do this: Very rarely used - but you can get the Java system-time (for the current response) at the point when the HTTP request was initiated (the value of System.currentTimeMillis()) which can be used for detailed logging or custom framework / stats calculations. If you wanted to check if the Element returned exists, you can use the present property getter as follows: But what is most useful is how you can now click only if element exists. - Mix API and UI test-automation. The following parameters are supported: For end-to-end examples in the Karate demos, look at the files in this folder. But normally a match statement is preferred unless you want a really descriptive error message. If you have trouble with