0% found this document useful (0 votes)
62 views

Hurl - Run and Test HTTP Requests

Hurl is a command line tool that allows users to define and run HTTP requests in a simple plain text format. It can perform GET and POST requests, capture values from responses, and evaluate responses using XPath, JSONPath, and assertions. Hurl supports chaining multiple requests, testing HTTP APIs, and checking performance and response content. Being powered by cURL and using a text file format, Hurl provides a lightweight way to test HTTP requests and APIs from the command line.

Uploaded by

ab
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Hurl - Run and Test HTTP Requests

Hurl is a command line tool that allows users to define and run HTTP requests in a simple plain text format. It can perform GET and POST requests, capture values from responses, and evaluate responses using XPath, JSONPath, and assertions. Hurl supports chaining multiple requests, testing HTTP APIs, and checking performance and response content. Being powered by cURL and using a text file format, Hurl provides a lightweight way to test HTTP requests and APIs from the command line.

Uploaded by

ab
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

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

You might also like