hurl/contrib/npm/hurl
2022-11-08 09:40:35 +01:00
..
docs Update npm install for 1.8.0. 2022-11-08 09:40:35 +01:00
archive.js Begin documenting npm distribution. 2022-08-20 14:38:31 +02:00
bin.js Begin documenting npm distribution. 2022-08-20 14:38:31 +02:00
hurl.js Begin documenting npm distribution. 2022-08-20 14:38:31 +02:00
hurlfmt.js Begin documenting npm distribution. 2022-08-20 14:38:31 +02:00
install.js Add archive check for npm installer. 2022-09-17 12:46:43 +02:00
package-lock.json Update npm install for 1.8.0. 2022-11-08 09:40:35 +01:00
package.json Update npm install for 1.8.0. 2022-11-08 09:40:35 +01:00
platform.json Update npm install for 1.8.0. 2022-11-08 09:40:35 +01:00
README.md Begin documenting npm distribution. 2022-08-20 14:38:31 +02:00

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

Samples

See https://hurl.dev/docs/samples.html