mirror of
https://github.com/Orange-OpenSource/hurl.git
synced 2024-09-11 05:35:53 +03:00
Update docs for 1.8.0
This commit is contained in:
parent
aa4d54f6a0
commit
a32535d9be
79
README.md
79
README.md
@ -11,8 +11,8 @@
|
||||
|
||||
Hurl is a command line tool that runs <b>HTTP requests</b> defined in a simple <b>plain text format</b>.
|
||||
|
||||
It can perform requests, capture values and evaluate queries on headers and body response. Hurl is very
|
||||
versatile: it can be used for both <b>fetching data</b> and <b>testing HTTP</b> sessions.
|
||||
It can chain requests, capture values and evaluate queries on headers and body response. Hurl is very
|
||||
versatile: it can be used for <b>fetching data</b>, <b>testing HTTP</b> sessions and testing <b>XML / JSON APIs</b>.
|
||||
|
||||
```hurl
|
||||
# Get home:
|
||||
@ -172,6 +172,7 @@ Table of Contents
|
||||
* [Testing Set-Cookie Attributes](#testing-set-cookie-attributes)
|
||||
* [Testing Bytes Content](#testing-bytes-content)
|
||||
* [Others](#others)
|
||||
* [Polling and Retry](#polling-and-retry)
|
||||
* [Testing Endpoint Performance](#testing-endpoint-performance)
|
||||
* [Using SOAP APIs](#using-soap-apis)
|
||||
* [Capturing and Using a CSRF Token](#capturing-and-using-a-csrf-token)
|
||||
@ -523,6 +524,35 @@ sha256 == hex,039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81;
|
||||
|
||||
## Others
|
||||
|
||||
### Polling and Retry
|
||||
|
||||
Retry request on any errors (asserts, captures, status code, runtime etc...):
|
||||
|
||||
```hurl
|
||||
# Create a new job
|
||||
POST https://api.example.org/jobs
|
||||
|
||||
HTTP/* 201
|
||||
[Captures]
|
||||
job_id: jsonpath "$.id"
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "RUNNING"
|
||||
|
||||
|
||||
# Pull job status until it is completed
|
||||
GET https://api.example.org/jobs/{{job_id}}
|
||||
[Options]
|
||||
retry: true
|
||||
|
||||
HTTP/* 200
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "COMPLETED"
|
||||
```
|
||||
|
||||
[Doc](https://hurl.dev/docs/entry.html#retry)
|
||||
|
||||
|
||||
|
||||
### Testing Endpoint Performance
|
||||
|
||||
```hurl
|
||||
@ -735,38 +765,41 @@ will follow a redirection only for the second entry.
|
||||
|
||||
Option | Description
|
||||
--- | ---
|
||||
<a href="#cacert" id="cacert"><code>--cacert</code></a> | Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.<br/>Normally curl is built to use a default file for this, so this option is typically used to alter that default file.<br/>
|
||||
<a href="#color" id="color"><code>--color</code></a> | Colorize Output<br/>
|
||||
<a href="#cacert" id="cacert"><code>--cacert</code></a> | Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.<br/>Normally Hurl is built to use a default file for this, so this option is typically used to alter that default file.<br/>
|
||||
<a href="#color" id="color"><code>--color</code></a> | Colorize Output.<br/>
|
||||
<a href="#compressed" id="compressed"><code>--compressed</code></a> | Request a compressed response using one of the algorithms br, gzip, deflate and automatically decompress the content.<br/>
|
||||
<a href="#connect-timeout" id="connect-timeout"><code>--connect-timeout <seconds></code></a> | Maximum time in seconds that you allow Hurl's connection to take.<br/><br/>See also [`-m, --max-time`](#max-time) option.<br/>
|
||||
<a href="#cookie" id="cookie"><code>-b, --cookie <file></code></a> | Read cookies from file (using the Netscape cookie file format).<br/><br/>Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#cookie-jar" id="cookie-jar"><code>-c, --cookie-jar <file></code></a> | Write cookies to FILE after running the session (only for one session).<br/>The file will be written using the Netscape cookie file format.<br/><br/>Combined with [`-b, --cookie`](#cookie), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#connect-timeout" id="connect-timeout"><code>--connect-timeout <SECONDS></code></a> | Maximum time in seconds that you allow Hurl's connection to take.<br/><br/>See also [`-m, --max-time`](#max-time) option.<br/>
|
||||
<a href="#cookie" id="cookie"><code>-b, --cookie <FILE></code></a> | Read cookies from FILE (using the Netscape cookie file format).<br/><br/>Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#cookie-jar" id="cookie-jar"><code>-c, --cookie-jar <FILE></code></a> | Write cookies to FILE after running the session (only for one session).<br/>The file will be written using the Netscape cookie file format.<br/><br/>Combined with [`-b, --cookie`](#cookie), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#fail-at-end" id="fail-at-end"><code>--fail-at-end</code></a> | Continue executing requests to the end of the Hurl file even when an assert error occurs.<br/>By default, Hurl exits after an assert error in the HTTP response.<br/><br/>Note that this option does not affect the behavior with multiple input Hurl files.<br/><br/>All the input files are executed independently. The result of one file does not affect the execution of the other Hurl files.<br/>
|
||||
<a href="#file-root" id="file-root"><code>--file-root <dir></code></a> | Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.<br/>When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.<br/>
|
||||
<a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.<br/>When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.<br/>
|
||||
<a href="#location" id="location"><code>-L, --location</code></a> | Follow redirect. To limit the amount of redirects to follow use the [`--max-redirs`](#max-redirs) option<br/>
|
||||
<a href="#glob" id="glob"><code>--glob <glob></code></a> | Specify input files that match the given glob pattern.<br/><br/>Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and []. <br/>However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.<br/>
|
||||
<a href="#glob" id="glob"><code>--glob <GLOB></code></a> | Specify input files that match the given glob pattern.<br/><br/>Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and []. <br/>However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.<br/>
|
||||
<a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output (last entry).<br/>
|
||||
<a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br/>
|
||||
<a href="#insecure" id="insecure"><code>-k, --insecure</code></a> | This option explicitly allows Hurl to perform "insecure" SSL connections and transfers.<br/>
|
||||
<a href="#interactive" id="interactive"><code>--interactive</code></a> | Stop between requests.<br/>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br/>
|
||||
<a href="#json" id="json"><code>--json</code></a> | Output each hurl file result to JSON. The format is very closed to HAR format. <br/>
|
||||
<a href="#max-redirs" id="max-redirs"><code>--max-redirs <num></code></a> | Set maximum number of redirection-followings allowed<br/>By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.<br/>
|
||||
<a href="#max-time" id="max-time"><code>-m, --max-time <seconds></code></a> | Maximum time in seconds that you allow a request/response to take. This is the standard timeout.<br/><br/>See also [`--connect-timeout`](#connect-timeout) option.<br/>
|
||||
<a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output<br/>
|
||||
<a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br/>By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.<br/>
|
||||
<a href="#max-time" id="max-time"><code>-m, --max-time <SECONDS></code></a> | Maximum time in seconds that you allow a request/response to take. This is the standard timeout.<br/><br/>See also [`--connect-timeout`](#connect-timeout) option.<br/>
|
||||
<a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output.<br/>
|
||||
<a href="#no-output" id="no-output"><code>--no-output</code></a> | Suppress output. By default, Hurl outputs the body of the last response.<br/>
|
||||
<a href="#noproxy" id="noproxy"><code>--noproxy <no-proxy-list></code></a> | Comma-separated list of hosts which do not use a proxy.<br/>Override value from Environment variable no_proxy.<br/>
|
||||
<a href="#output" id="output"><code>-o, --output <file></code></a> | Write output to <file> instead of stdout.<br/>
|
||||
<a href="#noproxy" id="noproxy"><code>--noproxy <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br/>Override value from Environment variable no_proxy.<br/>
|
||||
<a href="#output" id="output"><code>-o, --output <FILE></code></a> | Write output to FILE instead of stdout.<br/>
|
||||
<a href="#proxy" id="proxy"><code>-x, --proxy [protocol://]host[:port]</code></a> | Use the specified proxy.<br/>
|
||||
<a href="#report-junit" id="report-junit"><code>--report-junit <file></code></a> | Generate JUNIT <file>.<br/><br/>If the <file> report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-html" id="report-html"><code>--report-html <dir></code></a> | Generate HTML report in dir.<br/><br/>If the HTML report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-junit" id="report-junit"><code>--report-junit <FILE></code></a> | Generate JUnit File.<br/><br/>If the FILE report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-html" id="report-html"><code>--report-html <DIR></code></a> | Generate HTML report in DIR.<br/><br/>If the HTML report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#retry" id="retry"><code>--retry</code></a> | Retry requests if any error occurs (asserts, captures, runtimes etc...).<br/>
|
||||
<a href="#retry-interval" id="retry-interval"><code>--retry-interval <MILLISECONDS></code></a> | Duration in milliseconds between each retry. Default is 1000 ms.<br/>
|
||||
<a href="#retry-max-count" id="retry-max-count"><code>--retry-max-count <NUM></code></a> | Maximum number of retries. Set this option to -1 to make it unlimited. Default is 10.<br/>
|
||||
<a href="#test" id="test"><code>--test</code></a> | Activate test mode: with this, the HTTP response is not outputted anymore, progress is reported for each Hurl file tested, and a text summary is displayed when all files have been run.<br/>
|
||||
<a href="#to-entry" id="to-entry"><code>--to-entry <entry-number></code></a> | Execute Hurl file to ENTRY_NUMBER (starting at 1).<br/>Ignore the remaining of the file. It is useful for debugging a session.<br/>
|
||||
<a href="#user" id="user"><code>-u, --user <user:password></code></a> | Add basic Authentication header to each request.<br/>
|
||||
<a href="#user-agent" id="user-agent"><code>-A, --user-agent <name></code></a> | Specify the User-Agent string to send to the HTTP server.<br/>
|
||||
<a href="#variable" id="variable"><code>--variable <name=value></code></a> | Define variable (name/value) to be used in Hurl templates.<br/>
|
||||
<a href="#variables-file" id="variables-file"><code>--variables-file <file></code></a> | Set properties file in which your define your variables.<br/><br/>Each variable is defined as name=value exactly as with [`--variable`](#variable) option.<br/><br/>Note that defining a variable twice produces an error.<br/>
|
||||
<a href="#verbose" id="verbose"><code>-v, --verbose</code></a> | Turn on verbose output on standard error stream.<br/>Useful for debugging.<br/><br/>A line starting with '>' means data sent by Hurl.<br/>A line staring with '<' means data received by Hurl.<br/>A line starting with '*' means additional info provided by Hurl.<br/><br/>If you only want HTTP headers in the output, -i, --include might be the option you're looking for.<br/>
|
||||
<a href="#very-verbose" id="very-verbose"><code>--very-verbose</code></a> | Turn on more verbose output on standard error stream.<br/><br/>In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error.<br/>
|
||||
<a href="#to-entry" id="to-entry"><code>--to-entry <ENTRY_NUMBER></code></a> | Execute Hurl file to ENTRY_NUMBER (starting at 1).<br/>Ignore the remaining of the file. It is useful for debugging a session.<br/>
|
||||
<a href="#user" id="user"><code>-u, --user <USER:PASSWORD></code></a> | Add basic Authentication header to each request.<br/>
|
||||
<a href="#user-agent" id="user-agent"><code>-A, --user-agent <NAME></code></a> | Specify the User-Agent string to send to the HTTP server.<br/>
|
||||
<a href="#variable" id="variable"><code>--variable <NAME=VALUE></code></a> | Define variable (name/value) to be used in Hurl templates.<br/>
|
||||
<a href="#variables-file" id="variables-file"><code>--variables-file <FILE></code></a> | Set properties file in which your define your variables.<br/><br/>Each variable is defined as name=value exactly as with [`--variable`](#variable) option.<br/><br/>Note that defining a variable twice produces an error.<br/>
|
||||
<a href="#verbose" id="verbose"><code>-v, --verbose</code></a> | Turn on verbose output on standard error stream.<br/>Useful for debugging.<br/><br/>A line starting with '>' means data sent by Hurl.<br/>A line staring with '<' means data received by Hurl.<br/>A line starting with '*' means additional info provided by Hurl.<br/><br/>If you only want HTTP headers in the output, [`-i, --include`](#include) might be the option you're looking for.<br/>
|
||||
<a href="#very-verbose" id="very-verbose"><code>--very-verbose</code></a> | Turn on more verbose output on standard error stream.<br/><br/>In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error. In addition, lines starting with '**' are libcurl debug logs.<br/>
|
||||
<a href="#help" id="help"><code>-h, --help</code></a> | Usage help. This lists all current command line options with a short description.<br/>
|
||||
<a href="#version" id="version"><code>-V, --version</code></a> | Prints version information<br/>
|
||||
|
||||
|
@ -6,7 +6,8 @@ This script creates Hurl man file from a Markdown source.
|
||||
This tool takes the Hurl man Markdown source file as a first argument.
|
||||
|
||||
Examples:
|
||||
$ python3 bin/release/gen_manpage.py docs/manual/hurl.md > ../../docs/manual.md
|
||||
$ python3 bin/release/gen_manpage.py docs/manual/hurl.md > docs/manual/hurl.1
|
||||
$ python3 bin/release/gen_manpage.py docs/manual/hurlfmt.md > docs/manual/hurlfmt.1
|
||||
|
||||
"""
|
||||
import sys
|
||||
|
@ -120,6 +120,7 @@ is shared with [captures], and can be one of :
|
||||
|
||||
- [`status`](#status-assert)
|
||||
- [`header`](#header-assert)
|
||||
- [`url`](#url-assert)
|
||||
- [`cookie`](#cookie-assert)
|
||||
- [`body`](#body-assert)
|
||||
- [`bytes`](#bytes-assert)
|
||||
@ -295,6 +296,20 @@ Vary: User-Agent
|
||||
Vary: Content-Type
|
||||
```
|
||||
|
||||
### Url assert
|
||||
|
||||
Check the last fetched url. This is most meaningful if you have told Hurl to follow redirection (see [`[Options]`section][options] or
|
||||
[`--location` option]). Url assert consists of the keyword `url` followed by a predicate function and value.
|
||||
|
||||
```hurl
|
||||
GET https://example.org/redirecting
|
||||
[Options]
|
||||
location: true
|
||||
|
||||
HTTP/* 200
|
||||
[Asserts]
|
||||
url == "https://example.org/redirected"
|
||||
```
|
||||
|
||||
|
||||
### Cookie assert
|
||||
@ -576,6 +591,32 @@ HTTP/1.0 200
|
||||
duration < 1000 # Check that response time is less than one second
|
||||
```
|
||||
|
||||
## Filters
|
||||
|
||||
Optionally, asserts can be refined using filters `count` and `regex`.
|
||||
|
||||
### Count filter
|
||||
|
||||
```hurl
|
||||
GET https://pets.org/cats/cutest
|
||||
|
||||
HTTP/1.0 200
|
||||
[Captures]
|
||||
jsonpath "$.cats" count == 12
|
||||
```
|
||||
|
||||
### Regex filter
|
||||
|
||||
```hurl
|
||||
GET https://pets.org/cats/cutest
|
||||
|
||||
HTTP/1.0 200
|
||||
# Cat name are structured like this `meow + id`: for instance `meow123456`
|
||||
[Captures]
|
||||
jsonpath "$.cats[0].name" regex /meow(\d+)/ == "123456"
|
||||
```
|
||||
|
||||
|
||||
## Body
|
||||
|
||||
Optional assertion on the received HTTP response body. Body section can be seen
|
||||
@ -705,6 +746,7 @@ File are relative to the input Hurl file, and cannot contain implicit parent
|
||||
directory (`..`). You can use [`--file-root` option] to specify the root directory
|
||||
of all file nodes.
|
||||
|
||||
|
||||
[predicates]: #predicates
|
||||
[header assert]: #header-assert
|
||||
[captures]: /docs/capturing-response.md#query
|
||||
@ -722,3 +764,5 @@ of all file nodes.
|
||||
[Javascript-like Regular expression syntax]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
||||
[MD5]: https://en.wikipedia.org/wiki/MD5
|
||||
[SHA-256]: https://en.wikipedia.org/wiki/SHA-2
|
||||
[options]: /docs/request.md#options
|
||||
[`--location` option]: /docs/manual.md#location
|
||||
|
@ -50,6 +50,7 @@ Query can be of the following type:
|
||||
|
||||
- [`status`](#status-capture)
|
||||
- [`header`](#header-capture)
|
||||
- [`url`](#url-capture)
|
||||
- [`cookie`](#cookie-capture)
|
||||
- [`body`](#body-capture)
|
||||
- [`bytes`](#bytes-capture)
|
||||
@ -89,6 +90,21 @@ HTTP/1.1 302
|
||||
next_url: header "Location"
|
||||
```
|
||||
|
||||
### Url capture
|
||||
|
||||
Capture the last fetched url. This is most meaningful if you have told Hurl to follow redirection (see [`[Options]`section][options] or
|
||||
[`--location` option]). Url capture consists of a variable name, followed by a `:`, and the keyword `url`.
|
||||
|
||||
```hurl
|
||||
GET https://example.org/redirecting
|
||||
[Options]
|
||||
location: true
|
||||
|
||||
HTTP/* 200
|
||||
[Captures]
|
||||
landing_url: url
|
||||
```
|
||||
|
||||
### Cookie capture
|
||||
|
||||
Capture a [`Set-Cookie`] header from the received HTTP response headers. Cookie
|
||||
@ -283,35 +299,20 @@ duration_in_ms: duration
|
||||
|
||||
```
|
||||
|
||||
### Subquery
|
||||
## Filters
|
||||
|
||||
Optionally, query can be refined using subqueries `regex` and `count`.
|
||||
Optionally, query can be refined using filters `count` and `regex`.
|
||||
|
||||
<div class="schema-container u-font-size-0 u-font-size-1-sm u-font-size-3-md">
|
||||
<div class="schema">
|
||||
<span class="schema-token schema-color-1">my_var<span class="schema-label">variable</span></span>
|
||||
<span> : </span>
|
||||
<span class="schema-token schema-color-2">xpath "string(//h1)"<span class="schema-label">query</span></span>
|
||||
<span class="schema-token">regex "(\\d+)"<span class="schema-label">subquery (optional)</span></span>
|
||||
<span class="schema-token">regex "(\\d+)"<span class="schema-label">filter (optional)</span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
#### Regex subquery
|
||||
|
||||
```hurl
|
||||
GET https://pets.org/cats/cutest
|
||||
|
||||
HTTP/1.0 200
|
||||
# Cat name are structured like this `meow + id`: for instance `meow123456`
|
||||
[Captures]
|
||||
id: jsonpath "$.cats[0].name" regex "meow(\\d+)"
|
||||
```
|
||||
|
||||
Pattern of the regex subquery must have at least one capture group, otherwise the
|
||||
capture will fail. Metacharacters beginning with a backslash in the pattern
|
||||
(like `\d`, `\s`) must be escaped: `regex "(\\d+)!"` will capture one or more digit.
|
||||
|
||||
#### Count subquery
|
||||
### Count filter
|
||||
|
||||
Returns the count of a collection.
|
||||
|
||||
@ -323,6 +324,20 @@ HTTP/1.0 200
|
||||
cats_size: jsonpath "$.cats" count
|
||||
```
|
||||
|
||||
### Regex filter
|
||||
|
||||
```hurl
|
||||
GET https://pets.org/cats/cutest
|
||||
|
||||
HTTP/1.0 200
|
||||
# Cat name are structured like this `meow + id`: for instance `meow123456`
|
||||
[Captures]
|
||||
id: jsonpath "$.cats[0].name" regex "meow(\\d+)"
|
||||
```
|
||||
|
||||
Pattern of the regex filter must have at least one capture group, otherwise the
|
||||
capture will fail. Metacharacters beginning with a backslash in the pattern
|
||||
(like `\d`, `\s`) must be escaped: `regex "(\\d+)!"` will capture one or more digit.
|
||||
|
||||
|
||||
[CSRF tokens]: https://en.wikipedia.org/wiki/Cross-site_request_forgery
|
||||
@ -333,3 +348,5 @@ cats_size: jsonpath "$.cats" count
|
||||
[JSONPath]: https://goessner.net/articles/JsonPath/
|
||||
[XPath captures]: #xpath-capture
|
||||
[Javascript-like Regular expression syntax]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
|
||||
[options]: /docs/request.md#options
|
||||
[`--location` option]: /docs/manual.md#location
|
120
docs/entry.md
120
docs/entry.md
@ -33,49 +33,16 @@ HTTP/1.1 403
|
||||
|
||||
## Description
|
||||
|
||||
### Cookie storage
|
||||
|
||||
Requests in the same Hurl file share the cookie storage, enabling, for example, session based scenario.
|
||||
|
||||
### Redirects
|
||||
|
||||
By default, Hurl doesn't follow redirection. To effectively run a redirection, entries should describe each step
|
||||
of the redirection, allowing insertion of asserts in each response.
|
||||
|
||||
```hurl
|
||||
# First entry, test the redirection (status code and
|
||||
# Location header)
|
||||
GET http://google.fr
|
||||
|
||||
HTTP/1.1 301
|
||||
Location: http://www.google.fr/
|
||||
|
||||
# Second entry, the 200 OK response
|
||||
GET http://www.google.fr
|
||||
|
||||
HTTP/1.1 200
|
||||
```
|
||||
|
||||
Alternatively, one can use [`--location`] option to force redirection
|
||||
to be followed. In this case, asserts are executed on the last received response. Optionally, the number of
|
||||
redirections can be limited with [`--max-redirs`].
|
||||
|
||||
```hurl
|
||||
# Running hurl --location google.hurl
|
||||
GET http://google.fr
|
||||
HTTP/1.1 200
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
[Options] specified on the command line apply to every entry in an Hurl file. For instance, with [`--location` option],
|
||||
[Options] specified on the command line apply to every entry in an Hurl file. For instance, with [`--location` option],
|
||||
every entry of a given file will follow redirection:
|
||||
|
||||
```shell
|
||||
$ hurl --location foo.hurl
|
||||
```
|
||||
|
||||
You can use an `[Options]` section to use option only for a specified option. For instance, in this Hurl file:
|
||||
You can use an [`[Options]` section] to use option only for a specified option. For instance, in this Hurl file:
|
||||
|
||||
```hurl
|
||||
GET https://google.fr
|
||||
@ -106,6 +73,80 @@ HTTP/* 200
|
||||
# ... next entries
|
||||
```
|
||||
|
||||
### Cookie storage
|
||||
|
||||
Requests in the same Hurl file share the cookie storage, enabling, for example, session based scenario.
|
||||
|
||||
### Redirects
|
||||
|
||||
By default, Hurl doesn't follow redirection. To effectively run a redirection, entries should describe each step
|
||||
of the redirection, allowing insertion of asserts in each response.
|
||||
|
||||
```hurl
|
||||
# First entry, test the redirection (status code and
|
||||
# Location header)
|
||||
GET https://google.fr
|
||||
|
||||
HTTP/1.1 301
|
||||
Location: https://www.google.fr/
|
||||
|
||||
# Second entry, the 200 OK response
|
||||
GET https://www.google.fr
|
||||
|
||||
HTTP/1.1 200
|
||||
```
|
||||
|
||||
Alternatively, one can use [`--location`] option to force redirection
|
||||
to be followed. In this case, asserts are executed on the last received response. Optionally, the number of
|
||||
redirections can be limited with [`--max-redirs`].
|
||||
|
||||
```hurl
|
||||
# Running hurl --location google.hurl
|
||||
GET https://google.fr
|
||||
HTTP/1.1 200
|
||||
```
|
||||
|
||||
Finally, you can force redirection on a particular request with an [`[Options]` section][options] and the [`--location` option]:
|
||||
|
||||
```hurl
|
||||
GET https://google.fr
|
||||
[Options]
|
||||
location: true
|
||||
HTTP/1.1 200
|
||||
```
|
||||
|
||||
### Retry
|
||||
|
||||
Every entry can be retried upon asserts, captures or runtime errors. Retries allow polling scenarios and effective runs
|
||||
under flaky conditions. Asserts can be explicit (with an [`[Asserts]` section][asserts]), or implicit (like [headers] or [status code]).
|
||||
|
||||
Retries can be set globally for every request (see [`--retry`], [`--retry-interval`] and [`--retry-max-count`] options),
|
||||
or activated on a particular request with an [`[Options]` section][options].
|
||||
|
||||
For example, in this Hurl file, first we create a new job, then we poll the new job until it's completed:
|
||||
|
||||
```hurl
|
||||
# Create a new job
|
||||
POST http://api.example.org/jobs
|
||||
|
||||
HTTP/* 201
|
||||
[Captures]
|
||||
job_id: jsonpath "$.id"
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "RUNNING"
|
||||
|
||||
|
||||
# Pull job status until it is completed
|
||||
GET http://api.example.org/jobs/{{job_id}}
|
||||
[Options]
|
||||
retry: true
|
||||
|
||||
HTTP/* 200
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "COMPLETED"
|
||||
```
|
||||
|
||||
|
||||
[request]: /docs/request.md
|
||||
[response]: /docs/response.md
|
||||
[capture values]: /docs/capturing-response.md
|
||||
@ -113,4 +154,13 @@ HTTP/* 200
|
||||
[`--location`]: /docs/manual.md#location
|
||||
[`--max-redirs`]: /docs/manual.md#max-redirs
|
||||
[Options]: /docs/manual.md#options
|
||||
[options]: /docs/manual.md#options
|
||||
[`--location` option]: /docs/manual.md#location
|
||||
[headers]: /docs/response.md#headers
|
||||
[status code]: /docs/response.md#version-status
|
||||
[asserts]: /docs/response.md#asserts
|
||||
[Asserts]: /docs/response.md#asserts
|
||||
[`--retry`]: /docs/manual.md#retry
|
||||
[`--retry-interval`]: /docs/manual.md#retry-interval
|
||||
[`--retry-max-count`]: /docs/manual.md#retry-max-count
|
||||
|
||||
|
@ -1,18 +1,5 @@
|
||||
# Frequently Asked Questions
|
||||
|
||||
- [General](#general)
|
||||
- [Why "Hurl"?](#why-hurl)
|
||||
- [Yet Another Tool, I already use X](#yet-another-tool-i-already-use-x)
|
||||
- [Hurl is build on top of libcurl, but what is added?](#hurl-is-build-on-top-of-libcurl-but-what-is-added)
|
||||
- [Why shouldn't I use Hurl?](#why-shouldnt-i-use-hurl)
|
||||
- [I have a large numbers of tests, how to run just specific tests?](#i-have-a-large-numbers-of-tests-how-to-run-just-specific-tests)
|
||||
- [How can I use my Hurl files outside Hurl?](#how-can-i-use-my-hurl-files-outside-hurl)
|
||||
- [Can I do calculation within a Hurl file?](#can-i-do-calculation-within-a-hurl-file)
|
||||
- [macOS](#macos)
|
||||
- [How can I use a custom libcurl (from Homebrew by instance)?](#how-can-i-use-a-custom-libcurl-from-homebrew-by-instance)
|
||||
- [Hurl error: SSL certificate has expired](#hurl-error-ssl-certificate-has-expired)
|
||||
- [Hurl warning on Big Sur: Closing connection 0](#hurl-warning-on-big-sur-closing-connection-0)
|
||||
|
||||
## General
|
||||
|
||||
### Why "Hurl"?
|
||||
|
@ -9,8 +9,8 @@
|
||||
|
||||
Hurl is a command line tool that runs <b>HTTP requests</b> defined in a simple <b>plain text format</b>.
|
||||
|
||||
It can perform requests, capture values and evaluate queries on headers and body response. Hurl is very
|
||||
versatile: it can be used for both <b>fetching data</b> and <b>testing HTTP</b> sessions.
|
||||
It can chain requests, capture values and evaluate queries on headers and body response. Hurl is very
|
||||
versatile: it can be used for <b>fetching data</b>, <b>testing HTTP</b> sessions and testing <b>XML / JSON APIs</b>.
|
||||
|
||||
```hurl
|
||||
# Get home:
|
||||
|
@ -147,38 +147,41 @@ will follow a redirection only for the second entry.
|
||||
|
||||
Option | Description
|
||||
--- | ---
|
||||
<a href="#cacert" id="cacert"><code>--cacert</code></a> | Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.<br/>Normally curl is built to use a default file for this, so this option is typically used to alter that default file.<br/>
|
||||
<a href="#color" id="color"><code>--color</code></a> | Colorize Output<br/>
|
||||
<a href="#cacert" id="cacert"><code>--cacert</code></a> | Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.<br/>Normally Hurl is built to use a default file for this, so this option is typically used to alter that default file.<br/>
|
||||
<a href="#color" id="color"><code>--color</code></a> | Colorize Output.<br/>
|
||||
<a href="#compressed" id="compressed"><code>--compressed</code></a> | Request a compressed response using one of the algorithms br, gzip, deflate and automatically decompress the content.<br/>
|
||||
<a href="#connect-timeout" id="connect-timeout"><code>--connect-timeout <seconds></code></a> | Maximum time in seconds that you allow Hurl's connection to take.<br/><br/>See also [`-m, --max-time`](#max-time) option.<br/>
|
||||
<a href="#cookie" id="cookie"><code>-b, --cookie <file></code></a> | Read cookies from file (using the Netscape cookie file format).<br/><br/>Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#cookie-jar" id="cookie-jar"><code>-c, --cookie-jar <file></code></a> | Write cookies to FILE after running the session (only for one session).<br/>The file will be written using the Netscape cookie file format.<br/><br/>Combined with [`-b, --cookie`](#cookie), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#connect-timeout" id="connect-timeout"><code>--connect-timeout <SECONDS></code></a> | Maximum time in seconds that you allow Hurl's connection to take.<br/><br/>See also [`-m, --max-time`](#max-time) option.<br/>
|
||||
<a href="#cookie" id="cookie"><code>-b, --cookie <FILE></code></a> | Read cookies from FILE (using the Netscape cookie file format).<br/><br/>Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#cookie-jar" id="cookie-jar"><code>-c, --cookie-jar <FILE></code></a> | Write cookies to FILE after running the session (only for one session).<br/>The file will be written using the Netscape cookie file format.<br/><br/>Combined with [`-b, --cookie`](#cookie), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#fail-at-end" id="fail-at-end"><code>--fail-at-end</code></a> | Continue executing requests to the end of the Hurl file even when an assert error occurs.<br/>By default, Hurl exits after an assert error in the HTTP response.<br/><br/>Note that this option does not affect the behavior with multiple input Hurl files.<br/><br/>All the input files are executed independently. The result of one file does not affect the execution of the other Hurl files.<br/>
|
||||
<a href="#file-root" id="file-root"><code>--file-root <dir></code></a> | Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.<br/>When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.<br/>
|
||||
<a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.<br/>When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.<br/>
|
||||
<a href="#location" id="location"><code>-L, --location</code></a> | Follow redirect. To limit the amount of redirects to follow use the [`--max-redirs`](#max-redirs) option<br/>
|
||||
<a href="#glob" id="glob"><code>--glob <glob></code></a> | Specify input files that match the given glob pattern.<br/><br/>Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and []. <br/>However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.<br/>
|
||||
<a href="#glob" id="glob"><code>--glob <GLOB></code></a> | Specify input files that match the given glob pattern.<br/><br/>Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and []. <br/>However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.<br/>
|
||||
<a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output (last entry).<br/>
|
||||
<a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br/>
|
||||
<a href="#insecure" id="insecure"><code>-k, --insecure</code></a> | This option explicitly allows Hurl to perform "insecure" SSL connections and transfers.<br/>
|
||||
<a href="#interactive" id="interactive"><code>--interactive</code></a> | Stop between requests.<br/>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br/>
|
||||
<a href="#json" id="json"><code>--json</code></a> | Output each hurl file result to JSON. The format is very closed to HAR format. <br/>
|
||||
<a href="#max-redirs" id="max-redirs"><code>--max-redirs <num></code></a> | Set maximum number of redirection-followings allowed<br/>By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.<br/>
|
||||
<a href="#max-time" id="max-time"><code>-m, --max-time <seconds></code></a> | Maximum time in seconds that you allow a request/response to take. This is the standard timeout.<br/><br/>See also [`--connect-timeout`](#connect-timeout) option.<br/>
|
||||
<a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output<br/>
|
||||
<a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br/>By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.<br/>
|
||||
<a href="#max-time" id="max-time"><code>-m, --max-time <SECONDS></code></a> | Maximum time in seconds that you allow a request/response to take. This is the standard timeout.<br/><br/>See also [`--connect-timeout`](#connect-timeout) option.<br/>
|
||||
<a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output.<br/>
|
||||
<a href="#no-output" id="no-output"><code>--no-output</code></a> | Suppress output. By default, Hurl outputs the body of the last response.<br/>
|
||||
<a href="#noproxy" id="noproxy"><code>--noproxy <no-proxy-list></code></a> | Comma-separated list of hosts which do not use a proxy.<br/>Override value from Environment variable no_proxy.<br/>
|
||||
<a href="#output" id="output"><code>-o, --output <file></code></a> | Write output to <file> instead of stdout.<br/>
|
||||
<a href="#noproxy" id="noproxy"><code>--noproxy <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br/>Override value from Environment variable no_proxy.<br/>
|
||||
<a href="#output" id="output"><code>-o, --output <FILE></code></a> | Write output to FILE instead of stdout.<br/>
|
||||
<a href="#proxy" id="proxy"><code>-x, --proxy [protocol://]host[:port]</code></a> | Use the specified proxy.<br/>
|
||||
<a href="#report-junit" id="report-junit"><code>--report-junit <file></code></a> | Generate JUNIT <file>.<br/><br/>If the <file> report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-html" id="report-html"><code>--report-html <dir></code></a> | Generate HTML report in dir.<br/><br/>If the HTML report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-junit" id="report-junit"><code>--report-junit <FILE></code></a> | Generate JUnit File.<br/><br/>If the FILE report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-html" id="report-html"><code>--report-html <DIR></code></a> | Generate HTML report in DIR.<br/><br/>If the HTML report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#retry" id="retry"><code>--retry</code></a> | Retry requests if any error occurs (asserts, captures, runtimes etc...).<br/>
|
||||
<a href="#retry-interval" id="retry-interval"><code>--retry-interval <MILLISECONDS></code></a> | Duration in milliseconds between each retry. Default is 1000 ms.<br/>
|
||||
<a href="#retry-max-count" id="retry-max-count"><code>--retry-max-count <NUM></code></a> | Maximum number of retries. Set this option to -1 to make it unlimited. Default is 10.<br/>
|
||||
<a href="#test" id="test"><code>--test</code></a> | Activate test mode: with this, the HTTP response is not outputted anymore, progress is reported for each Hurl file tested, and a text summary is displayed when all files have been run.<br/>
|
||||
<a href="#to-entry" id="to-entry"><code>--to-entry <entry-number></code></a> | Execute Hurl file to ENTRY_NUMBER (starting at 1).<br/>Ignore the remaining of the file. It is useful for debugging a session.<br/>
|
||||
<a href="#user" id="user"><code>-u, --user <user:password></code></a> | Add basic Authentication header to each request.<br/>
|
||||
<a href="#user-agent" id="user-agent"><code>-A, --user-agent <name></code></a> | Specify the User-Agent string to send to the HTTP server.<br/>
|
||||
<a href="#variable" id="variable"><code>--variable <name=value></code></a> | Define variable (name/value) to be used in Hurl templates.<br/>
|
||||
<a href="#variables-file" id="variables-file"><code>--variables-file <file></code></a> | Set properties file in which your define your variables.<br/><br/>Each variable is defined as name=value exactly as with [`--variable`](#variable) option.<br/><br/>Note that defining a variable twice produces an error.<br/>
|
||||
<a href="#verbose" id="verbose"><code>-v, --verbose</code></a> | Turn on verbose output on standard error stream.<br/>Useful for debugging.<br/><br/>A line starting with '>' means data sent by Hurl.<br/>A line staring with '<' means data received by Hurl.<br/>A line starting with '*' means additional info provided by Hurl.<br/><br/>If you only want HTTP headers in the output, -i, --include might be the option you're looking for.<br/>
|
||||
<a href="#very-verbose" id="very-verbose"><code>--very-verbose</code></a> | Turn on more verbose output on standard error stream.<br/><br/>In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error.<br/>
|
||||
<a href="#to-entry" id="to-entry"><code>--to-entry <ENTRY_NUMBER></code></a> | Execute Hurl file to ENTRY_NUMBER (starting at 1).<br/>Ignore the remaining of the file. It is useful for debugging a session.<br/>
|
||||
<a href="#user" id="user"><code>-u, --user <USER:PASSWORD></code></a> | Add basic Authentication header to each request.<br/>
|
||||
<a href="#user-agent" id="user-agent"><code>-A, --user-agent <NAME></code></a> | Specify the User-Agent string to send to the HTTP server.<br/>
|
||||
<a href="#variable" id="variable"><code>--variable <NAME=VALUE></code></a> | Define variable (name/value) to be used in Hurl templates.<br/>
|
||||
<a href="#variables-file" id="variables-file"><code>--variables-file <FILE></code></a> | Set properties file in which your define your variables.<br/><br/>Each variable is defined as name=value exactly as with [`--variable`](#variable) option.<br/><br/>Note that defining a variable twice produces an error.<br/>
|
||||
<a href="#verbose" id="verbose"><code>-v, --verbose</code></a> | Turn on verbose output on standard error stream.<br/>Useful for debugging.<br/><br/>A line starting with '>' means data sent by Hurl.<br/>A line staring with '<' means data received by Hurl.<br/>A line starting with '*' means additional info provided by Hurl.<br/><br/>If you only want HTTP headers in the output, [`-i, --include`](#include) might be the option you're looking for.<br/>
|
||||
<a href="#very-verbose" id="very-verbose"><code>--very-verbose</code></a> | Turn on more verbose output on standard error stream.<br/><br/>In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error. In addition, lines starting with '**' are libcurl debug logs.<br/>
|
||||
<a href="#help" id="help"><code>-h, --help</code></a> | Usage help. This lists all current command line options with a short description.<br/>
|
||||
<a href="#version" id="version"><code>-V, --version</code></a> | Prints version information<br/>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH hurl 1 "30 Sep 2022" "hurl 1.8.0-SNAPSHOT" " Hurl Manual"
|
||||
.TH hurl 1 "24 Oct 2022" "hurl 1.8.0-SNAPSHOT" " Hurl Manual"
|
||||
.SH NAME
|
||||
|
||||
hurl - run and test HTTP requests.
|
||||
@ -127,29 +127,29 @@ will follow a redirection only for the second entry.
|
||||
.IP "--cacert "
|
||||
|
||||
Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.
|
||||
Normally curl is built to use a default file for this, so this option is typically used to alter that default file.
|
||||
Normally Hurl is built to use a default file for this, so this option is typically used to alter that default file.
|
||||
|
||||
.IP "--color "
|
||||
|
||||
Colorize Output
|
||||
Colorize Output.
|
||||
|
||||
.IP "--compressed "
|
||||
|
||||
Request a compressed response using one of the algorithms br, gzip, deflate and automatically decompress the content.
|
||||
|
||||
.IP "--connect-timeout <seconds> "
|
||||
.IP "--connect-timeout <SECONDS> "
|
||||
|
||||
Maximum time in seconds that you allow Hurl's connection to take.
|
||||
|
||||
See also \fI-m, --max-time\fP option.
|
||||
|
||||
.IP "-b, --cookie <file> "
|
||||
.IP "-b, --cookie <FILE> "
|
||||
|
||||
Read cookies from file (using the Netscape cookie file format).
|
||||
Read cookies from FILE (using the Netscape cookie file format).
|
||||
|
||||
Combined with \fI-c, --cookie-jar\fP, you can simulate a cookie storage between successive Hurl runs.
|
||||
|
||||
.IP "-c, --cookie-jar <file> "
|
||||
.IP "-c, --cookie-jar <FILE> "
|
||||
|
||||
Write cookies to FILE after running the session (only for one session).
|
||||
The file will be written using the Netscape cookie file format.
|
||||
@ -165,7 +165,7 @@ Note that this option does not affect the behavior with multiple input Hurl file
|
||||
|
||||
All the input files are executed independently. The result of one file does not affect the execution of the other Hurl files.
|
||||
|
||||
.IP "--file-root <dir> "
|
||||
.IP "--file-root <DIR> "
|
||||
|
||||
Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.
|
||||
When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.
|
||||
@ -174,7 +174,7 @@ When this is not explicitly defined, the files are relative to the current direc
|
||||
|
||||
Follow redirect. To limit the amount of redirects to follow use the \fI--max-redirs\fP option
|
||||
|
||||
.IP "--glob <glob> "
|
||||
.IP "--glob <GLOB> "
|
||||
|
||||
Specify input files that match the given glob pattern.
|
||||
|
||||
@ -202,12 +202,12 @@ This is similar to a break point, You can then continue (Press C) or quit (Press
|
||||
|
||||
Output each hurl file result to JSON. The format is very closed to HAR format.
|
||||
|
||||
.IP "--max-redirs <num> "
|
||||
.IP "--max-redirs <NUM> "
|
||||
|
||||
Set maximum number of redirection-followings allowed
|
||||
By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.
|
||||
|
||||
.IP "-m, --max-time <seconds> "
|
||||
.IP "-m, --max-time <SECONDS> "
|
||||
|
||||
Maximum time in seconds that you allow a request/response to take. This is the standard timeout.
|
||||
|
||||
@ -215,59 +215,71 @@ See also \fI--connect-timeout\fP option.
|
||||
|
||||
.IP "--no-color "
|
||||
|
||||
Do not colorize output
|
||||
Do not colorize output.
|
||||
|
||||
.IP "--no-output "
|
||||
|
||||
Suppress output. By default, Hurl outputs the body of the last response.
|
||||
|
||||
.IP "--noproxy <no-proxy-list> "
|
||||
.IP "--noproxy <HOST(S)> "
|
||||
|
||||
Comma-separated list of hosts which do not use a proxy.
|
||||
Override value from Environment variable no_proxy.
|
||||
|
||||
.IP "-o, --output <file> "
|
||||
.IP "-o, --output <FILE> "
|
||||
|
||||
Write output to <file> instead of stdout.
|
||||
Write output to FILE instead of stdout.
|
||||
|
||||
.IP "-x, --proxy [protocol://]host[:port] "
|
||||
|
||||
Use the specified proxy.
|
||||
|
||||
.IP "--report-junit <file> "
|
||||
.IP "--report-junit <FILE> "
|
||||
|
||||
Generate JUNIT <file>.
|
||||
Generate JUnit File.
|
||||
|
||||
If the <file> report already exists, it will be updated with the new test results.
|
||||
If the FILE report already exists, it will be updated with the new test results.
|
||||
|
||||
.IP "--report-html <dir> "
|
||||
.IP "--report-html <DIR> "
|
||||
|
||||
Generate HTML report in dir.
|
||||
Generate HTML report in DIR.
|
||||
|
||||
If the HTML report already exists, it will be updated with the new test results.
|
||||
|
||||
.IP "--retry "
|
||||
|
||||
Retry requests if any error occurs (asserts, captures, runtimes etc...).
|
||||
|
||||
.IP "--retry-interval <MILLISECONDS> "
|
||||
|
||||
Duration in milliseconds between each retry. Default is 1000 ms.
|
||||
|
||||
.IP "--retry-max-count <NUM> "
|
||||
|
||||
Maximum number of retries. Set this option to -1 to make it unlimited. Default is 10.
|
||||
|
||||
.IP "--test "
|
||||
|
||||
Activate test mode: with this, the HTTP response is not outputted anymore, progress is reported for each Hurl file tested, and a text summary is displayed when all files have been run.
|
||||
|
||||
.IP "--to-entry <entry-number> "
|
||||
.IP "--to-entry <ENTRY_NUMBER> "
|
||||
|
||||
Execute Hurl file to ENTRY_NUMBER (starting at 1).
|
||||
Ignore the remaining of the file. It is useful for debugging a session.
|
||||
|
||||
.IP "-u, --user <user:password> "
|
||||
.IP "-u, --user <USER:PASSWORD> "
|
||||
|
||||
Add basic Authentication header to each request.
|
||||
|
||||
.IP "-A, --user-agent <name> "
|
||||
.IP "-A, --user-agent <NAME> "
|
||||
|
||||
Specify the User-Agent string to send to the HTTP server.
|
||||
|
||||
.IP "--variable <name=value> "
|
||||
.IP "--variable <NAME=VALUE> "
|
||||
|
||||
Define variable (name/value) to be used in Hurl templates.
|
||||
|
||||
.IP "--variables-file <file> "
|
||||
.IP "--variables-file <FILE> "
|
||||
|
||||
Set properties file in which your define your variables.
|
||||
|
||||
@ -284,13 +296,13 @@ A line starting with '>' means data sent by Hurl.
|
||||
A line staring with '<' means data received by Hurl.
|
||||
A line starting with '*' means additional info provided by Hurl.
|
||||
|
||||
If you only want HTTP headers in the output, -i, --include might be the option you're looking for.
|
||||
If you only want HTTP headers in the output, \fI-i, --include\fP might be the option you're looking for.
|
||||
|
||||
.IP "--very-verbose "
|
||||
|
||||
Turn on more verbose output on standard error stream.
|
||||
|
||||
In contrast to \fI--verbose\fP option, this option outputs the full HTTP body request and response on standard error.
|
||||
In contrast to \fI--verbose\fP option, this option outputs the full HTTP body request and response on standard error. In addition, lines starting with '**' are libcurl debug logs.
|
||||
|
||||
|
||||
.IP "-h, --help "
|
||||
|
@ -146,29 +146,29 @@ will follow a redirection only for the second entry.
|
||||
### --cacert {#cacert}
|
||||
|
||||
Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.
|
||||
Normally curl is built to use a default file for this, so this option is typically used to alter that default file.
|
||||
Normally Hurl is built to use a default file for this, so this option is typically used to alter that default file.
|
||||
|
||||
### --color {#color}
|
||||
|
||||
Colorize Output
|
||||
Colorize Output.
|
||||
|
||||
### --compressed {#compressed}
|
||||
|
||||
Request a compressed response using one of the algorithms br, gzip, deflate and automatically decompress the content.
|
||||
|
||||
### --connect-timeout <seconds> {#connect-timeout}
|
||||
### --connect-timeout <SECONDS> {#connect-timeout}
|
||||
|
||||
Maximum time in seconds that you allow Hurl's connection to take.
|
||||
|
||||
See also [`-m, --max-time`](#max-time) option.
|
||||
|
||||
### -b, --cookie <file> {#cookie}
|
||||
### -b, --cookie <FILE> {#cookie}
|
||||
|
||||
Read cookies from file (using the Netscape cookie file format).
|
||||
Read cookies from FILE (using the Netscape cookie file format).
|
||||
|
||||
Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.
|
||||
|
||||
### -c, --cookie-jar <file> {#cookie-jar}
|
||||
### -c, --cookie-jar <FILE> {#cookie-jar}
|
||||
|
||||
Write cookies to FILE after running the session (only for one session).
|
||||
The file will be written using the Netscape cookie file format.
|
||||
@ -184,7 +184,7 @@ Note that this option does not affect the behavior with multiple input Hurl file
|
||||
|
||||
All the input files are executed independently. The result of one file does not affect the execution of the other Hurl files.
|
||||
|
||||
### --file-root <dir> {#file-root}
|
||||
### --file-root <DIR> {#file-root}
|
||||
|
||||
Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.
|
||||
When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.
|
||||
@ -193,7 +193,7 @@ When this is not explicitly defined, the files are relative to the current direc
|
||||
|
||||
Follow redirect. To limit the amount of redirects to follow use the [`--max-redirs`](#max-redirs) option
|
||||
|
||||
### --glob <glob> {#glob}
|
||||
### --glob <GLOB> {#glob}
|
||||
|
||||
Specify input files that match the given glob pattern.
|
||||
|
||||
@ -221,12 +221,12 @@ This is similar to a break point, You can then continue (Press C) or quit (Press
|
||||
|
||||
Output each hurl file result to JSON. The format is very closed to HAR format.
|
||||
|
||||
### --max-redirs <num> {#max-redirs}
|
||||
### --max-redirs <NUM> {#max-redirs}
|
||||
|
||||
Set maximum number of redirection-followings allowed
|
||||
By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.
|
||||
|
||||
### -m, --max-time <seconds> {#max-time}
|
||||
### -m, --max-time <SECONDS> {#max-time}
|
||||
|
||||
Maximum time in seconds that you allow a request/response to take. This is the standard timeout.
|
||||
|
||||
@ -234,59 +234,71 @@ See also [`--connect-timeout`](#connect-timeout) option.
|
||||
|
||||
### --no-color {#no-color}
|
||||
|
||||
Do not colorize output
|
||||
Do not colorize output.
|
||||
|
||||
### --no-output {#no-output}
|
||||
|
||||
Suppress output. By default, Hurl outputs the body of the last response.
|
||||
|
||||
### --noproxy <no-proxy-list> {#noproxy}
|
||||
### --noproxy <HOST(S)> {#noproxy}
|
||||
|
||||
Comma-separated list of hosts which do not use a proxy.
|
||||
Override value from Environment variable no_proxy.
|
||||
|
||||
### -o, --output <file> {#output}
|
||||
### -o, --output <FILE> {#output}
|
||||
|
||||
Write output to <file> instead of stdout.
|
||||
Write output to FILE instead of stdout.
|
||||
|
||||
### -x, --proxy [protocol://]host[:port] {#proxy}
|
||||
|
||||
Use the specified proxy.
|
||||
|
||||
### --report-junit <file> {#report-junit}
|
||||
### --report-junit <FILE> {#report-junit}
|
||||
|
||||
Generate JUNIT <file>.
|
||||
Generate JUnit File.
|
||||
|
||||
If the <file> report already exists, it will be updated with the new test results.
|
||||
If the FILE report already exists, it will be updated with the new test results.
|
||||
|
||||
### --report-html <dir> {#report-html}
|
||||
### --report-html <DIR> {#report-html}
|
||||
|
||||
Generate HTML report in dir.
|
||||
Generate HTML report in DIR.
|
||||
|
||||
If the HTML report already exists, it will be updated with the new test results.
|
||||
|
||||
### --retry {#retry}
|
||||
|
||||
Retry requests if any error occurs (asserts, captures, runtimes etc...).
|
||||
|
||||
### --retry-interval <MILLISECONDS> {#retry-interval}
|
||||
|
||||
Duration in milliseconds between each retry. Default is 1000 ms.
|
||||
|
||||
### --retry-max-count <NUM> {#retry-max-count}
|
||||
|
||||
Maximum number of retries. Set this option to -1 to make it unlimited. Default is 10.
|
||||
|
||||
### --test {#test}
|
||||
|
||||
Activate test mode: with this, the HTTP response is not outputted anymore, progress is reported for each Hurl file tested, and a text summary is displayed when all files have been run.
|
||||
|
||||
### --to-entry <entry-number> {#to-entry}
|
||||
### --to-entry <ENTRY_NUMBER> {#to-entry}
|
||||
|
||||
Execute Hurl file to ENTRY_NUMBER (starting at 1).
|
||||
Ignore the remaining of the file. It is useful for debugging a session.
|
||||
|
||||
### -u, --user <user:password> {#user}
|
||||
### -u, --user <USER:PASSWORD> {#user}
|
||||
|
||||
Add basic Authentication header to each request.
|
||||
|
||||
### -A, --user-agent <name> {#user-agent}
|
||||
### -A, --user-agent <NAME> {#user-agent}
|
||||
|
||||
Specify the User-Agent string to send to the HTTP server.
|
||||
|
||||
### --variable <name=value> {#variable}
|
||||
### --variable <NAME=VALUE> {#variable}
|
||||
|
||||
Define variable (name/value) to be used in Hurl templates.
|
||||
|
||||
### --variables-file <file> {#variables-file}
|
||||
### --variables-file <FILE> {#variables-file}
|
||||
|
||||
Set properties file in which your define your variables.
|
||||
|
||||
@ -303,13 +315,13 @@ A line starting with '>' means data sent by Hurl.
|
||||
A line staring with '<' means data received by Hurl.
|
||||
A line starting with '*' means additional info provided by Hurl.
|
||||
|
||||
If you only want HTTP headers in the output, -i, --include might be the option you're looking for.
|
||||
If you only want HTTP headers in the output, [`-i, --include`](#include) might be the option you're looking for.
|
||||
|
||||
### --very-verbose {#very-verbose}
|
||||
|
||||
Turn on more verbose output on standard error stream.
|
||||
|
||||
In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error.
|
||||
In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error. In addition, lines starting with '**' are libcurl debug logs.
|
||||
|
||||
|
||||
### -h, --help {#help}
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH hurl 1 "30 Sep 2022" "hurl 1.8.0-SNAPSHOT" " Hurl Manual"
|
||||
.TH hurl 1 "24 Oct 2022" "hurl 1.8.0-SNAPSHOT" " Hurl Manual"
|
||||
.SH NAME
|
||||
|
||||
hurlfmt - format Hurl files
|
||||
|
@ -308,6 +308,35 @@ sha256 == hex,039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81;
|
||||
|
||||
## Others
|
||||
|
||||
### Polling and Retry
|
||||
|
||||
Retry request on any errors (asserts, captures, status code, runtime etc...):
|
||||
|
||||
```hurl
|
||||
# Create a new job
|
||||
POST https://api.example.org/jobs
|
||||
|
||||
HTTP/* 201
|
||||
[Captures]
|
||||
job_id: jsonpath "$.id"
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "RUNNING"
|
||||
|
||||
|
||||
# Pull job status until it is completed
|
||||
GET https://api.example.org/jobs/{{job_id}}
|
||||
[Options]
|
||||
retry: true
|
||||
|
||||
HTTP/* 200
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "COMPLETED"
|
||||
```
|
||||
|
||||
[Doc](/docs/entry.md#retry)
|
||||
|
||||
|
||||
|
||||
### Testing Endpoint Performance
|
||||
|
||||
```hurl
|
||||
|
@ -11,8 +11,8 @@
|
||||
|
||||
Hurl is a command line tool that runs <b>HTTP requests</b> defined in a simple <b>plain text format</b>.
|
||||
|
||||
It can perform requests, capture values and evaluate queries on headers and body response. Hurl is very
|
||||
versatile: it can be used for both <b>fetching data</b> and <b>testing HTTP</b> sessions.
|
||||
It can chain requests, capture values and evaluate queries on headers and body response. Hurl is very
|
||||
versatile: it can be used for <b>fetching data</b>, <b>testing HTTP</b> sessions and testing <b>XML / JSON APIs</b>.
|
||||
|
||||
```hurl
|
||||
# Get home:
|
||||
@ -172,6 +172,7 @@ Table of Contents
|
||||
* [Testing Set-Cookie Attributes](#testing-set-cookie-attributes)
|
||||
* [Testing Bytes Content](#testing-bytes-content)
|
||||
* [Others](#others)
|
||||
* [Polling and Retry](#polling-and-retry)
|
||||
* [Testing Endpoint Performance](#testing-endpoint-performance)
|
||||
* [Using SOAP APIs](#using-soap-apis)
|
||||
* [Capturing and Using a CSRF Token](#capturing-and-using-a-csrf-token)
|
||||
@ -523,6 +524,35 @@ sha256 == hex,039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81;
|
||||
|
||||
## Others
|
||||
|
||||
### Polling and Retry
|
||||
|
||||
Retry request on any errors (asserts, captures, status code, runtime etc...):
|
||||
|
||||
```hurl
|
||||
# Create a new job
|
||||
POST https://api.example.org/jobs
|
||||
|
||||
HTTP/* 201
|
||||
[Captures]
|
||||
job_id: jsonpath "$.id"
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "RUNNING"
|
||||
|
||||
|
||||
# Pull job status until it is completed
|
||||
GET https://api.example.org/jobs/{{job_id}}
|
||||
[Options]
|
||||
retry: true
|
||||
|
||||
HTTP/* 200
|
||||
[Asserts]
|
||||
jsonpath "$.state" == "COMPLETED"
|
||||
```
|
||||
|
||||
[Doc](https://hurl.dev/docs/entry.html#retry)
|
||||
|
||||
|
||||
|
||||
### Testing Endpoint Performance
|
||||
|
||||
```hurl
|
||||
@ -735,38 +765,41 @@ will follow a redirection only for the second entry.
|
||||
|
||||
Option | Description
|
||||
--- | ---
|
||||
<a href="#cacert" id="cacert"><code>--cacert</code></a> | Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.<br/>Normally curl is built to use a default file for this, so this option is typically used to alter that default file.<br/>
|
||||
<a href="#color" id="color"><code>--color</code></a> | Colorize Output<br/>
|
||||
<a href="#cacert" id="cacert"><code>--cacert</code></a> | Specifies the certificate file for peer verification. The file may contain multiple CA certificates and must be in PEM format.<br/>Normally Hurl is built to use a default file for this, so this option is typically used to alter that default file.<br/>
|
||||
<a href="#color" id="color"><code>--color</code></a> | Colorize Output.<br/>
|
||||
<a href="#compressed" id="compressed"><code>--compressed</code></a> | Request a compressed response using one of the algorithms br, gzip, deflate and automatically decompress the content.<br/>
|
||||
<a href="#connect-timeout" id="connect-timeout"><code>--connect-timeout <seconds></code></a> | Maximum time in seconds that you allow Hurl's connection to take.<br/><br/>See also [`-m, --max-time`](#max-time) option.<br/>
|
||||
<a href="#cookie" id="cookie"><code>-b, --cookie <file></code></a> | Read cookies from file (using the Netscape cookie file format).<br/><br/>Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#cookie-jar" id="cookie-jar"><code>-c, --cookie-jar <file></code></a> | Write cookies to FILE after running the session (only for one session).<br/>The file will be written using the Netscape cookie file format.<br/><br/>Combined with [`-b, --cookie`](#cookie), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#connect-timeout" id="connect-timeout"><code>--connect-timeout <SECONDS></code></a> | Maximum time in seconds that you allow Hurl's connection to take.<br/><br/>See also [`-m, --max-time`](#max-time) option.<br/>
|
||||
<a href="#cookie" id="cookie"><code>-b, --cookie <FILE></code></a> | Read cookies from FILE (using the Netscape cookie file format).<br/><br/>Combined with [`-c, --cookie-jar`](#cookie-jar), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#cookie-jar" id="cookie-jar"><code>-c, --cookie-jar <FILE></code></a> | Write cookies to FILE after running the session (only for one session).<br/>The file will be written using the Netscape cookie file format.<br/><br/>Combined with [`-b, --cookie`](#cookie), you can simulate a cookie storage between successive Hurl runs.<br/>
|
||||
<a href="#fail-at-end" id="fail-at-end"><code>--fail-at-end</code></a> | Continue executing requests to the end of the Hurl file even when an assert error occurs.<br/>By default, Hurl exits after an assert error in the HTTP response.<br/><br/>Note that this option does not affect the behavior with multiple input Hurl files.<br/><br/>All the input files are executed independently. The result of one file does not affect the execution of the other Hurl files.<br/>
|
||||
<a href="#file-root" id="file-root"><code>--file-root <dir></code></a> | Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.<br/>When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.<br/>
|
||||
<a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root file system to import files in Hurl. This is used for both files in multipart form data and request body.<br/>When this is not explicitly defined, the files are relative to the current directory in which Hurl is running.<br/>
|
||||
<a href="#location" id="location"><code>-L, --location</code></a> | Follow redirect. To limit the amount of redirects to follow use the [`--max-redirs`](#max-redirs) option<br/>
|
||||
<a href="#glob" id="glob"><code>--glob <glob></code></a> | Specify input files that match the given glob pattern.<br/><br/>Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and []. <br/>However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.<br/>
|
||||
<a href="#glob" id="glob"><code>--glob <GLOB></code></a> | Specify input files that match the given glob pattern.<br/><br/>Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and []. <br/>However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.<br/>
|
||||
<a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output (last entry).<br/>
|
||||
<a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br/>
|
||||
<a href="#insecure" id="insecure"><code>-k, --insecure</code></a> | This option explicitly allows Hurl to perform "insecure" SSL connections and transfers.<br/>
|
||||
<a href="#interactive" id="interactive"><code>--interactive</code></a> | Stop between requests.<br/>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br/>
|
||||
<a href="#json" id="json"><code>--json</code></a> | Output each hurl file result to JSON. The format is very closed to HAR format. <br/>
|
||||
<a href="#max-redirs" id="max-redirs"><code>--max-redirs <num></code></a> | Set maximum number of redirection-followings allowed<br/>By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.<br/>
|
||||
<a href="#max-time" id="max-time"><code>-m, --max-time <seconds></code></a> | Maximum time in seconds that you allow a request/response to take. This is the standard timeout.<br/><br/>See also [`--connect-timeout`](#connect-timeout) option.<br/>
|
||||
<a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output<br/>
|
||||
<a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br/>By default, the limit is set to 50 redirections. Set this option to -1 to make it unlimited.<br/>
|
||||
<a href="#max-time" id="max-time"><code>-m, --max-time <SECONDS></code></a> | Maximum time in seconds that you allow a request/response to take. This is the standard timeout.<br/><br/>See also [`--connect-timeout`](#connect-timeout) option.<br/>
|
||||
<a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output.<br/>
|
||||
<a href="#no-output" id="no-output"><code>--no-output</code></a> | Suppress output. By default, Hurl outputs the body of the last response.<br/>
|
||||
<a href="#noproxy" id="noproxy"><code>--noproxy <no-proxy-list></code></a> | Comma-separated list of hosts which do not use a proxy.<br/>Override value from Environment variable no_proxy.<br/>
|
||||
<a href="#output" id="output"><code>-o, --output <file></code></a> | Write output to <file> instead of stdout.<br/>
|
||||
<a href="#noproxy" id="noproxy"><code>--noproxy <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br/>Override value from Environment variable no_proxy.<br/>
|
||||
<a href="#output" id="output"><code>-o, --output <FILE></code></a> | Write output to FILE instead of stdout.<br/>
|
||||
<a href="#proxy" id="proxy"><code>-x, --proxy [protocol://]host[:port]</code></a> | Use the specified proxy.<br/>
|
||||
<a href="#report-junit" id="report-junit"><code>--report-junit <file></code></a> | Generate JUNIT <file>.<br/><br/>If the <file> report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-html" id="report-html"><code>--report-html <dir></code></a> | Generate HTML report in dir.<br/><br/>If the HTML report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-junit" id="report-junit"><code>--report-junit <FILE></code></a> | Generate JUnit File.<br/><br/>If the FILE report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#report-html" id="report-html"><code>--report-html <DIR></code></a> | Generate HTML report in DIR.<br/><br/>If the HTML report already exists, it will be updated with the new test results.<br/>
|
||||
<a href="#retry" id="retry"><code>--retry</code></a> | Retry requests if any error occurs (asserts, captures, runtimes etc...).<br/>
|
||||
<a href="#retry-interval" id="retry-interval"><code>--retry-interval <MILLISECONDS></code></a> | Duration in milliseconds between each retry. Default is 1000 ms.<br/>
|
||||
<a href="#retry-max-count" id="retry-max-count"><code>--retry-max-count <NUM></code></a> | Maximum number of retries. Set this option to -1 to make it unlimited. Default is 10.<br/>
|
||||
<a href="#test" id="test"><code>--test</code></a> | Activate test mode: with this, the HTTP response is not outputted anymore, progress is reported for each Hurl file tested, and a text summary is displayed when all files have been run.<br/>
|
||||
<a href="#to-entry" id="to-entry"><code>--to-entry <entry-number></code></a> | Execute Hurl file to ENTRY_NUMBER (starting at 1).<br/>Ignore the remaining of the file. It is useful for debugging a session.<br/>
|
||||
<a href="#user" id="user"><code>-u, --user <user:password></code></a> | Add basic Authentication header to each request.<br/>
|
||||
<a href="#user-agent" id="user-agent"><code>-A, --user-agent <name></code></a> | Specify the User-Agent string to send to the HTTP server.<br/>
|
||||
<a href="#variable" id="variable"><code>--variable <name=value></code></a> | Define variable (name/value) to be used in Hurl templates.<br/>
|
||||
<a href="#variables-file" id="variables-file"><code>--variables-file <file></code></a> | Set properties file in which your define your variables.<br/><br/>Each variable is defined as name=value exactly as with [`--variable`](#variable) option.<br/><br/>Note that defining a variable twice produces an error.<br/>
|
||||
<a href="#verbose" id="verbose"><code>-v, --verbose</code></a> | Turn on verbose output on standard error stream.<br/>Useful for debugging.<br/><br/>A line starting with '>' means data sent by Hurl.<br/>A line staring with '<' means data received by Hurl.<br/>A line starting with '*' means additional info provided by Hurl.<br/><br/>If you only want HTTP headers in the output, -i, --include might be the option you're looking for.<br/>
|
||||
<a href="#very-verbose" id="very-verbose"><code>--very-verbose</code></a> | Turn on more verbose output on standard error stream.<br/><br/>In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error.<br/>
|
||||
<a href="#to-entry" id="to-entry"><code>--to-entry <ENTRY_NUMBER></code></a> | Execute Hurl file to ENTRY_NUMBER (starting at 1).<br/>Ignore the remaining of the file. It is useful for debugging a session.<br/>
|
||||
<a href="#user" id="user"><code>-u, --user <USER:PASSWORD></code></a> | Add basic Authentication header to each request.<br/>
|
||||
<a href="#user-agent" id="user-agent"><code>-A, --user-agent <NAME></code></a> | Specify the User-Agent string to send to the HTTP server.<br/>
|
||||
<a href="#variable" id="variable"><code>--variable <NAME=VALUE></code></a> | Define variable (name/value) to be used in Hurl templates.<br/>
|
||||
<a href="#variables-file" id="variables-file"><code>--variables-file <FILE></code></a> | Set properties file in which your define your variables.<br/><br/>Each variable is defined as name=value exactly as with [`--variable`](#variable) option.<br/><br/>Note that defining a variable twice produces an error.<br/>
|
||||
<a href="#verbose" id="verbose"><code>-v, --verbose</code></a> | Turn on verbose output on standard error stream.<br/>Useful for debugging.<br/><br/>A line starting with '>' means data sent by Hurl.<br/>A line staring with '<' means data received by Hurl.<br/>A line starting with '*' means additional info provided by Hurl.<br/><br/>If you only want HTTP headers in the output, [`-i, --include`](#include) might be the option you're looking for.<br/>
|
||||
<a href="#very-verbose" id="very-verbose"><code>--very-verbose</code></a> | Turn on more verbose output on standard error stream.<br/><br/>In contrast to [`--verbose`](#verbose) option, this option outputs the full HTTP body request and response on standard error. In addition, lines starting with '**' are libcurl debug logs.<br/>
|
||||
<a href="#help" id="help"><code>-h, --help</code></a> | Usage help. This lists all current command line options with a short description.<br/>
|
||||
<a href="#version" id="version"><code>-V, --version</code></a> | Prints version information<br/>
|
||||
|
||||
|
@ -360,7 +360,7 @@ pub fn app(version: &str) -> Command {
|
||||
.arg(
|
||||
clap::Arg::new("very_verbose")
|
||||
.long("very-verbose")
|
||||
.help("Turn on verbose output, including HTTP response")
|
||||
.help("Turn on verbose output, including HTTP response and libcurl logs")
|
||||
.action(ArgAction::SetTrue)
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user