We're happy to release a new version of Hurl [1]. Hurl is a command line tool powered by curl, that runs HTTP requests defined in a simple plain text format:
# Get home:
GET https://example.org
HTTP/1.1 200
[Captures]
csrf_token: xpath "string(//meta[@name='_csrf_token']/@content)"
# Do login!
POST https://example.org/login?user=toto&password=1234
X-CSRF-TOKEN:
HTTP/1.1 302
Hurl can be used to get data like curl, or as an integration testing tool for JSON/XML HTTP apis / HTML content. Requests can be chained, and one can add asserts on response headers, cookies and body.For instance:
GET https://example.org/order
screencapability: low
HTTP/1.1 200
[Asserts]
jsonpath "$.validated" == true
jsonpath "$.userInfo.lastName" == "Herbert"
jsonpath "$.hasDevice" == false
jsonpath "$.links" count == 12
jsonpath "$.order" matches /^order-\d{8}$/
You can see more samples in the documentation [2].We've designed Hurl to be easily integrated in CI/CD (GitHub, GitLab), and its text format can be used as a documentation, commited in a repo etc... It's a single binary written in Rust, that is powered by libcurl under the hood, for a fast CLI tool for both devops and developers.
In this new version, we've added the following improvements:
- verbose output: add more color to Hurl --verbose output, and also added --very-verbose option to output request and response bodies
- request options: command-line options such as --location (follow HTTP redirection), --verbose, --insecure etc... can now be applied to a particular request with an [Options] sections
- and more, see here for a quick tout of 1.7.0 [3]
[1] https://github.com/Orange-OpenSource/hurl
[2] https://hurl.dev/docs/samples.html
[3] https://hurl.dev/blog/2022/09/15/announcing-hurl-1.7.0.html
Previous Show HN <https://news.ycombinator.com/item?id=28758226> and <https://news.ycombinator.com/item?id=25655737>