Hurl - Run and Test HTTP Requests
Hurl - Run and Test HTTP Requests
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
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
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!"
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
GET http://api.example.org/v1/pets
HTTP/1.0 200
[Asserts]
duration < 1000 # Duration in ms
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
5 of 5 10/5/21, 3:12 PM