Remote-Url: https://hurl.dev Retrieved-at: 2021-11-13 13:27:42.052187+00:00 Hurl home page Hurl home page Home Docs GitHub Search Menu Getting Started * Man Page * Installation * Samples * Running Tests * Frequently Asked Questions File Format * Hurl File * Grammar * Entry * Request * Response * Capturing Response * Asserting Response * Templates Tutorial * Your First Hurl File * Adding Asserts * Chaining Requests * Debug Tips * Captures * Security * CI/CD Integration Resources * License * GitHub Getting Started * Man Page * Installation * Samples * Running Tests * Frequently Asked Questions File Format * Hurl File * Grammar * Entry * Request * Response * Capturing Response * Asserting Response * Templates Tutorial * Your First Hurl File * Adding Asserts * Chaining Requests * Debug Tips * Captures * Security * CI/CD Integration Resources * License * GitHub Hurl logo Hurl logo 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 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" GOOG 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,039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81; 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 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. Feedbacks Hurl is 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 Build rev. 7a0b079 Hurl⇄ by CCMD Team