Hurl - Run and Test HTTP Requests https://hurl.dev/index.
html
! Search " Menu
What’s Hurl?
Hurl is a command line tool that runs HTTP requests defined in a simple plain text
format.
It 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
Chaining multiple requests is easy:
GET https://api.example.net/health
GET https://api.example.net/step1
GET https://api.example.net/step2
GET https://api.example.net/step3
1 of 5 10/5/21, 3:12 PM
Hurl - Run and Test HTTP Requests https://hurl.dev/index.html
Also an HTTP Test Tool
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": "456",
"evaluate": true
}
HTTP/1.1 200
[Asserts]
jsonpath "$.status" == "RUNNING" # Check the status code
jsonpath "$.tests" count == 25 # Check the number of items
HTML content
GET https://example.net
HTTP/1.1 200
[Asserts]
xpath "normalize-space(//head/title)" == "Hello world!"
and even SOAP apis
POST https://example.net/InStock
Content-Type: application/soap+xml; charset=utf-8
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:m="
<soap:Header></soap:Header>
<soap:Body>
<m:GetStockPrice>
<m:StockName>GOOG</m:StockName>
2 of 5 10/5/21, 3:12 PM
Hurl - Run and Test HTTP Requests https://hurl.dev/index.html
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200
Hurl can also be used to test HTTP endpoints performances:
GET http://api.example.org/v1/pets
HTTP/1.0 200
[Asserts]
duration < 1000 # Duration in ms
And responses bytes content
GET http://example.org/data.tar.gz
HTTP/1.0 200
[Asserts]
sha256 == hex,039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb8
Why Hurl?
Text Format
For both devops and developers
Fast CLI
A command line for local dev and continuous integration
Single Binary
Easy to install, with no runtime required
3 of 5 10/5/21, 3:12 PM
Hurl - Run and Test HTTP Requests https://hurl.dev/index.html
Powered by curl
Hurl is a lightweight binary written in Rust. Under the hood, Hurl HTTP engine is
powered by libcurl, one of the most powerful and reliable file transfer library. With its
text file format, Hurl adds syntactic sugar to run and tests HTTP requests, but it’s still
the curl that we love.
Installation
See the the installation section.
Feedbacks
Hurl file format and runners are still in beta, any feedback, suggestion, bugs or
improvements are welcome.
POST https://hurl.dev/api/feedback
{
"name": "John Doe",
"feedback": "Hurl is awesome !"
}
HTTP/1.1 200
Resources
License
Documentation
GitHub
4 of 5 10/5/21, 3:12 PM
Hurl - Run and Test HTTP Requests https://hurl.dev/index.html
Build rev. bcf3c25 Hurl⇄ by CCMD Team
5 of 5 10/5/21, 3:12 PM