.. | ||
docs | ||
archive.js | ||
bin.js | ||
hurl.js | ||
hurlfmt.js | ||
install.js | ||
package-lock.json | ||
package.json | ||
platform.json | ||
README.md |
Hurl
Hurl is a command line tool written in Rust that runs HTTP requests defined in a simple plain text format.
The @orangeopensource/hurl
package allows JavaScript developers to use Hurl in npm scripts.
Hurl can perform requests, capture values and evaluate queries on headers and body response. Hurl is very versatile: it can be used for both fetching data and testing HTTP sessions.
# Get home:
GET https://example.net
HTTP/1.1 200
[Captures]
csrf_token: xpath "string(//meta[@name='_csrf_token']/@content)"
# Do login!
POST https://example.net/login?user=toto&password=1234
X-CSRF-TOKEN: {{csrf_token}}
HTTP/1.1 302
Hurl can run HTTP requests but can also be used to test HTTP responses. Different types of queries and predicates are supported, from XPath and JSONPath on body response, to assert on status code and response headers.
It is well adapted for REST / JSON apis
POST https://api.example.net/tests
{
"id": "4568",
"evaluate": true
}
HTTP/1.1 200
[Asserts]
header "X-Frame-Options" == "SAMEORIGIN"
jsonpath "$.status" == "RUNNING" # Check the status code
jsonpath "$.tests" count == 25 # Check the number of items
jsonpath "$.id" matches /\d{4}/ # Check the format of the id
and HTML content
GET https://example.net
HTTP/1.1 200
[Asserts]
xpath "normalize-space(//head/title)" == "Hello world!"
Installation
npm install --save-dev @orangeopensource/hurl
This will download the appropriate Hurl binaries for your platform. hurlmft
binary is also installed, which
you can use for exporting Hurl files to JSON files.
Usage
In your package.json
file:
{
"name": "sample-app",
"scripts": {
"test": "hurl --test --glob test/*.hurl",
...
},
...
Documentation
See https://hurl.dev