mirror of
https://github.com/Orange-OpenSource/hurl.git
synced 2024-11-23 00:44:55 +03:00
Add --from-entry option to execute a file from a given entry
This commit is contained in:
parent
7c00c15759
commit
dcd534a912
119
README.md
119
README.md
@ -921,7 +921,8 @@ More information on asserts can be found here [https://hurl.dev/docs/asserting-r
|
||||
|
||||
Options that exist in curl have exactly the same semantics.
|
||||
|
||||
Options specified on the command line are defined for every Hurl file's entry.
|
||||
Options specified on the command line are defined for every Hurl file's entry,
|
||||
except if they are tagged as cli-only (can not be defined in the Hurl request [Options] entry)
|
||||
|
||||
For instance:
|
||||
|
||||
@ -943,62 +944,66 @@ HTTP 200
|
||||
|
||||
will follow a redirection only for the second entry.
|
||||
|
||||
| Option | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <a href="#aws-sigv4" id="aws-sigv4"><code>--aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]></code></a> | Generate an `Authorization` header with an AWS SigV4 signature.<br><br>Use [`-u, --user`](#user) to specify Access Key Id (username) and Secret Key (password).<br><br>To use temporary session credentials (e.g. for an AWS IAM Role), add the `X-Amz-Security-Token` header containing the session token.<br> |
|
||||
| <a href="#cacert" id="cacert"><code>--cacert <FILE></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="#cert" id="cert"><code>-E, --cert <CERTIFICATE[:PASSWORD]></code></a> | Client certificate file and password.<br><br>See also [`--key`](#key).<br> |
|
||||
| <a href="#color" id="color"><code>--color</code></a> | Colorize debug output (the HTTP response output is not colorized).<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).<br> |
|
||||
| <a href="#connect-to" id="connect-to"><code>--connect-to <HOST1:PORT1:HOST2:PORT2></code></a> | For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option can be used several times in a command line.<br><br>See also [`--resolve`](#resolve).<br> |
|
||||
| <a href="#continue-on-error" id="continue-on-error"><code>--continue-on-error</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="#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="#delay" id="delay"><code>--delay <MILLISECONDS></code></a> | Sets delay before each request.<br> |
|
||||
| <a href="#error-format" id="error-format"><code>--error-format <FORMAT></code></a> | Control the format of error message (short by default or long)<br> |
|
||||
| <a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.<br>When it is not explicitly defined, files are relative to the current directory in which Hurl is running.<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="#http10" id="http10"><code>-0, --http1.0</code></a> | Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.<br> |
|
||||
| <a href="#http11" id="http11"><code>--http1.1</code></a> | Tells Hurl to use HTTP version 1.1.<br> |
|
||||
| <a href="#http2" id="http2"><code>--http2</code></a> | Tells Hurl to use HTTP version 2.<br>For HTTPS, this means Hurl negotiates HTTP/2 in the TLS handshake. Hurl does this by default.<br>For HTTP, this means Hurl attempts to upgrade the request to HTTP/2 using the Upgrade: request header.<br> |
|
||||
| <a href="#http3" id="http3"><code>--http3</code></a> | Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only available for HTTPS and not for HTTP URLs.<br> |
|
||||
| <a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br> |
|
||||
| <a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output<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><br>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br> |
|
||||
| <a href="#ipv4" id="ipv4"><code>-4, --ipv4</code></a> | This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.<br> |
|
||||
| <a href="#ipv6" id="ipv6"><code>-6, --ipv6</code></a> | This option tells Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4.<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="#key" id="key"><code>--key <KEY></code></a> | Private key file name.<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="#location-trusted" id="location-trusted"><code>--location-trusted</code></a> | Like [`-L, --location`](#location), but allows sending the name + password to all hosts that the site may redirect to.<br>This may or may not introduce a security breach if the site redirects you to a site to which you send your authentication info (which is plaintext in the case of HTTP Basic authentication).<br> |
|
||||
| <a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br><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).<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 <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br><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="#path-as-is" id="path-as-is"><code>--path-as-is</code></a> | Tell Hurl to not handle sequences of /../ or /./ in the given URL path. Normally Hurl will squash or merge them according to standards but with this option set you tell it not to do that.<br> |
|
||||
| <a href="#proxy" id="proxy"><code>-x, --proxy <[PROTOCOL://]HOST[:PORT]></code></a> | Use the specified proxy.<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-tap" id="report-tap"><code>--report-tap <FILE></code></a> | Generate TAP report.<br><br>If the FILE report already exists, it will be updated with the new test results.<br> |
|
||||
| <a href="#resolve" id="resolve"><code>--resolve <HOST:PORT:ADDR></code></a> | Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.<br> |
|
||||
| <a href="#retry" id="retry"><code>--retry <NUM></code></a> | Maximum number of retries, 0 for no retries, -1 for unlimited retries. Retry happens 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="#ssl-no-revoke" id="ssl-no-revoke"><code>--ssl-no-revoke</code></a> | (Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.<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="#unix-socket" id="unix-socket"><code>--unix-socket <PATH></code></a> | (HTTP) Connect through this Unix domain socket, instead of using the network.<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> |
|
||||
| Option | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <a href="#aws-sigv4" id="aws-sigv4"><code>--aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]></code></a> | Generate an `Authorization` header with an AWS SigV4 signature.<br><br>Use [`-u, --user`](#user) to specify Access Key Id (username) and Secret Key (password).<br><br>To use temporary session credentials (e.g. for an AWS IAM Role), add the `X-Amz-Security-Token` header containing the session token.<br> |
|
||||
| <a href="#cacert" id="cacert"><code>--cacert <FILE></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="#cert" id="cert"><code>-E, --cert <CERTIFICATE[:PASSWORD]></code></a> | Client certificate file and password.<br><br>See also [`--key`](#key).<br> |
|
||||
| <a href="#color" id="color"><code>--color</code></a> | Colorize debug output (the HTTP response output is not colorized).<br><br>This is a cli-only option.<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).<br> |
|
||||
| <a href="#connect-to" id="connect-to"><code>--connect-to <HOST1:PORT1:HOST2:PORT2></code></a> | For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option can be used several times in a command line.<br><br>See also [`--resolve`](#resolve).<br> |
|
||||
| <a href="#continue-on-error" id="continue-on-error"><code>--continue-on-error</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><br>This is a cli-only 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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#delay" id="delay"><code>--delay <MILLISECONDS></code></a> | Sets delay before each request.<br> |
|
||||
| <a href="#error-format" id="error-format"><code>--error-format <FORMAT></code></a> | Control the format of error message (short by default or long)<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.<br>When it is not explicitly defined, files are relative to the current directory in which Hurl is running.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#from-entry" id="from-entry"><code>--from-entry <ENTRY_NUMBER></code></a> | Execute Hurl file from ENTRY_NUMBER (starting at 1).<br><br>This is a cli-only 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><br>This is a cli-only option.<br> |
|
||||
| <a href="#http10" id="http10"><code>-0, --http1.0</code></a> | Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.<br> |
|
||||
| <a href="#http11" id="http11"><code>--http1.1</code></a> | Tells Hurl to use HTTP version 1.1.<br> |
|
||||
| <a href="#http2" id="http2"><code>--http2</code></a> | Tells Hurl to use HTTP version 2.<br>For HTTPS, this means Hurl negotiates HTTP/2 in the TLS handshake. Hurl does this by default.<br>For HTTP, this means Hurl attempts to upgrade the request to HTTP/2 using the Upgrade: request header.<br> |
|
||||
| <a href="#http3" id="http3"><code>--http3</code></a> | Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only available for HTTPS and not for HTTP URLs.<br> |
|
||||
| <a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output<br><br>This is a cli-only option.<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><br>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#ipv4" id="ipv4"><code>-4, --ipv4</code></a> | This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.<br> |
|
||||
| <a href="#ipv6" id="ipv6"><code>-6, --ipv6</code></a> | This option tells Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#key" id="key"><code>--key <KEY></code></a> | Private key file name.<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="#location-trusted" id="location-trusted"><code>--location-trusted</code></a> | Like [`-L, --location`](#location), but allows sending the name + password to all hosts that the site may redirect to.<br>This may or may not introduce a security breach if the site redirects you to a site to which you send your authentication info (which is plaintext in the case of HTTP Basic authentication).<br> |
|
||||
| <a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br><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).<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#netrc" id="netrc"><code>-n, --netrc</code></a> | Scan the .netrc file in the user's home directory for the username and password.<br><br>See also [`--netrc-file`](#netrc-file) and [`--netrc-optional`](#netrc-optional).<br> |
|
||||
| <a href="#netrc-file" id="netrc-file"><code>--netrc-file <FILE></code></a> | Like [`--netrc`](#netrc), but provide the path to the netrc file.<br><br>See also [`--netrc-optional`](#netrc-optional).<br> |
|
||||
| <a href="#netrc-optional" id="netrc-optional"><code>--netrc-optional</code></a> | Similar to [`--netrc`](#netrc), but make the .netrc usage optional.<br><br>See also [`--netrc-file`](#netrc-file).<br> |
|
||||
| <a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#noproxy" id="noproxy"><code>--noproxy <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br><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="#path-as-is" id="path-as-is"><code>--path-as-is</code></a> | Tell Hurl to not handle sequences of /../ or /./ in the given URL path. Normally Hurl will squash or merge them according to standards but with this option set you tell it not to do that.<br> |
|
||||
| <a href="#proxy" id="proxy"><code>-x, --proxy <[PROTOCOL://]HOST[:PORT]></code></a> | Use the specified proxy.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#report-tap" id="report-tap"><code>--report-tap <FILE></code></a> | Generate TAP report.<br><br>If the FILE report already exists, it will be updated with the new test results.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#resolve" id="resolve"><code>--resolve <HOST:PORT:ADDR></code></a> | Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.<br> |
|
||||
| <a href="#retry" id="retry"><code>--retry <NUM></code></a> | Maximum number of retries, 0 for no retries, -1 for unlimited retries. Retry happens 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="#ssl-no-revoke" id="ssl-no-revoke"><code>--ssl-no-revoke</code></a> | (Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#unix-socket" id="unix-socket"><code>--unix-socket <PATH></code></a> | (HTTP) Connect through this Unix domain socket, instead of using the network.<br> |
|
||||
| <a href="#user" id="user"><code>-u, --user <USER:PASSWORD></code></a> | Add basic Authentication header to each request.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<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> |
|
||||
|
||||
## Environment
|
||||
|
||||
|
@ -32,6 +32,7 @@ _hurl() {
|
||||
'--file-root[Set root directory to import files \[default: current directory\]]: :' \
|
||||
'(-L --location)'{-L,--location}'[Follow redirects]' \
|
||||
'--location-trusted[Follow redirects but allows sending the name + password to all hosts that the site may redirect to.]' \
|
||||
'--from-entry[Execute Hurl file from ENTRY_NUMBER (starting at 1)]: :' \
|
||||
'*--glob[Specify input files that match the given GLOB. Multiple glob flags may be used]: :' \
|
||||
'(-0 --http1.0)'{-0,--http1.0}'[Tell Hurl to use HTTP version 1.0]' \
|
||||
'--http1.1[Tell Hurl to use HTTP version 1.1]' \
|
||||
|
@ -37,6 +37,7 @@ Register-ArgumentCompleter -Native -CommandName 'hurl' -ScriptBlock {
|
||||
[CompletionResult]::new('--file-root', 'file-root', [CompletionResultType]::ParameterName, 'Set root directory to import files [default: current directory]')
|
||||
[CompletionResult]::new('--location', 'location', [CompletionResultType]::ParameterName, 'Follow redirects')
|
||||
[CompletionResult]::new('--location-trusted', 'location-trusted', [CompletionResultType]::ParameterName, 'Follow redirects but allows sending the name + password to all hosts that the site may redirect to.')
|
||||
[CompletionResult]::new('--from-entry', 'from-entry', [CompletionResultType]::ParameterName, 'Execute Hurl file from ENTRY_NUMBER (starting at 1)')
|
||||
[CompletionResult]::new('--glob', 'glob', [CompletionResultType]::ParameterName, 'Specify input files that match the given GLOB. Multiple glob flags may be used')
|
||||
[CompletionResult]::new('--http1.0', 'http1.0', [CompletionResultType]::ParameterName, 'Tell Hurl to use HTTP version 1.0')
|
||||
[CompletionResult]::new('--http1.1', 'http1.1', [CompletionResultType]::ParameterName, 'Tell Hurl to use HTTP version 1.1')
|
||||
|
@ -5,7 +5,7 @@ _hurl()
|
||||
_init_completion || return
|
||||
|
||||
if [[ $cur == -* ]]; then
|
||||
COMPREPLY=($(compgen -W '--aws-sigv4 --cacert --cert --key --color --compressed --connect-timeout --connect-to --continue-on-error --cookie --cookie-jar --delay --error-format --fail-at-end --file-root --location --location-trusted --glob --http1.0 --http1.1 --http2 --http3 --ignore-asserts --include --insecure --interactive --ipv4 --ipv6 --json --max-redirs --max-time --max-workers --netrc --netrc-file --netrc-optional --no-color --no-output --noproxy --output --parallel --path-as-is --proxy --report-html --report-junit --report-tap --resolve --retry --retry-interval --ssl-no-revoke --test --to-entry --unix-socket --user --user-agent --variable --variables-file --verbose --very-verbose --help --version' -- "$cur"))
|
||||
COMPREPLY=($(compgen -W '--aws-sigv4 --cacert --cert --key --color --compressed --connect-timeout --connect-to --continue-on-error --cookie --cookie-jar --delay --error-format --fail-at-end --file-root --location --location-trusted --from-entry --glob --http1.0 --http1.1 --http2 --http3 --ignore-asserts --include --insecure --interactive --ipv4 --ipv6 --json --max-redirs --max-time --max-workers --netrc --netrc-file --netrc-optional --no-color --no-output --noproxy --output --parallel --path-as-is --proxy --report-html --report-junit --report-tap --resolve --retry --retry-interval --ssl-no-revoke --test --to-entry --unix-socket --user --user-agent --variable --variables-file --verbose --very-verbose --help --version' -- "$cur"))
|
||||
return
|
||||
fi
|
||||
|
||||
|
@ -15,6 +15,7 @@ complete -c hurl -l fail-at-end -d 'Fail at end'
|
||||
complete -c hurl -l file-root -d 'Set root directory to import files [default: current directory]'
|
||||
complete -c hurl -l location -d 'Follow redirects'
|
||||
complete -c hurl -l location-trusted -d 'Follow redirects but allows sending the name + password to all hosts that the site may redirect to.'
|
||||
complete -c hurl -l from-entry -d 'Execute Hurl file from ENTRY_NUMBER (starting at 1)'
|
||||
complete -c hurl -l glob -d 'Specify input files that match the given GLOB. Multiple glob flags may be used'
|
||||
complete -c hurl -l http1.0 -d 'Tell Hurl to use HTTP version 1.0'
|
||||
complete -c hurl -l http1.1 -d 'Tell Hurl to use HTTP version 1.1'
|
||||
|
119
docs/manual.md
119
docs/manual.md
@ -123,7 +123,8 @@ More information on asserts can be found here [https://hurl.dev/docs/asserting-r
|
||||
|
||||
Options that exist in curl have exactly the same semantics.
|
||||
|
||||
Options specified on the command line are defined for every Hurl file's entry.
|
||||
Options specified on the command line are defined for every Hurl file's entry,
|
||||
except if they are tagged as cli-only (can not be defined in the Hurl request [Options] entry)
|
||||
|
||||
For instance:
|
||||
|
||||
@ -145,62 +146,66 @@ HTTP 200
|
||||
|
||||
will follow a redirection only for the second entry.
|
||||
|
||||
| Option | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <a href="#aws-sigv4" id="aws-sigv4"><code>--aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]></code></a> | Generate an `Authorization` header with an AWS SigV4 signature.<br><br>Use [`-u, --user`](#user) to specify Access Key Id (username) and Secret Key (password).<br><br>To use temporary session credentials (e.g. for an AWS IAM Role), add the `X-Amz-Security-Token` header containing the session token.<br> |
|
||||
| <a href="#cacert" id="cacert"><code>--cacert <FILE></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="#cert" id="cert"><code>-E, --cert <CERTIFICATE[:PASSWORD]></code></a> | Client certificate file and password.<br><br>See also [`--key`](#key).<br> |
|
||||
| <a href="#color" id="color"><code>--color</code></a> | Colorize debug output (the HTTP response output is not colorized).<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).<br> |
|
||||
| <a href="#connect-to" id="connect-to"><code>--connect-to <HOST1:PORT1:HOST2:PORT2></code></a> | For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option can be used several times in a command line.<br><br>See also [`--resolve`](#resolve).<br> |
|
||||
| <a href="#continue-on-error" id="continue-on-error"><code>--continue-on-error</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="#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="#delay" id="delay"><code>--delay <MILLISECONDS></code></a> | Sets delay before each request.<br> |
|
||||
| <a href="#error-format" id="error-format"><code>--error-format <FORMAT></code></a> | Control the format of error message (short by default or long)<br> |
|
||||
| <a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.<br>When it is not explicitly defined, files are relative to the current directory in which Hurl is running.<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="#http10" id="http10"><code>-0, --http1.0</code></a> | Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.<br> |
|
||||
| <a href="#http11" id="http11"><code>--http1.1</code></a> | Tells Hurl to use HTTP version 1.1.<br> |
|
||||
| <a href="#http2" id="http2"><code>--http2</code></a> | Tells Hurl to use HTTP version 2.<br>For HTTPS, this means Hurl negotiates HTTP/2 in the TLS handshake. Hurl does this by default.<br>For HTTP, this means Hurl attempts to upgrade the request to HTTP/2 using the Upgrade: request header.<br> |
|
||||
| <a href="#http3" id="http3"><code>--http3</code></a> | Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only available for HTTPS and not for HTTP URLs.<br> |
|
||||
| <a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br> |
|
||||
| <a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output<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><br>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br> |
|
||||
| <a href="#ipv4" id="ipv4"><code>-4, --ipv4</code></a> | This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.<br> |
|
||||
| <a href="#ipv6" id="ipv6"><code>-6, --ipv6</code></a> | This option tells Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4.<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="#key" id="key"><code>--key <KEY></code></a> | Private key file name.<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="#location-trusted" id="location-trusted"><code>--location-trusted</code></a> | Like [`-L, --location`](#location), but allows sending the name + password to all hosts that the site may redirect to.<br>This may or may not introduce a security breach if the site redirects you to a site to which you send your authentication info (which is plaintext in the case of HTTP Basic authentication).<br> |
|
||||
| <a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br><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).<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 <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br><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="#path-as-is" id="path-as-is"><code>--path-as-is</code></a> | Tell Hurl to not handle sequences of /../ or /./ in the given URL path. Normally Hurl will squash or merge them according to standards but with this option set you tell it not to do that.<br> |
|
||||
| <a href="#proxy" id="proxy"><code>-x, --proxy <[PROTOCOL://]HOST[:PORT]></code></a> | Use the specified proxy.<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-tap" id="report-tap"><code>--report-tap <FILE></code></a> | Generate TAP report.<br><br>If the FILE report already exists, it will be updated with the new test results.<br> |
|
||||
| <a href="#resolve" id="resolve"><code>--resolve <HOST:PORT:ADDR></code></a> | Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.<br> |
|
||||
| <a href="#retry" id="retry"><code>--retry <NUM></code></a> | Maximum number of retries, 0 for no retries, -1 for unlimited retries. Retry happens 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="#ssl-no-revoke" id="ssl-no-revoke"><code>--ssl-no-revoke</code></a> | (Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.<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="#unix-socket" id="unix-socket"><code>--unix-socket <PATH></code></a> | (HTTP) Connect through this Unix domain socket, instead of using the network.<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> |
|
||||
| Option | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <a href="#aws-sigv4" id="aws-sigv4"><code>--aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]></code></a> | Generate an `Authorization` header with an AWS SigV4 signature.<br><br>Use [`-u, --user`](#user) to specify Access Key Id (username) and Secret Key (password).<br><br>To use temporary session credentials (e.g. for an AWS IAM Role), add the `X-Amz-Security-Token` header containing the session token.<br> |
|
||||
| <a href="#cacert" id="cacert"><code>--cacert <FILE></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="#cert" id="cert"><code>-E, --cert <CERTIFICATE[:PASSWORD]></code></a> | Client certificate file and password.<br><br>See also [`--key`](#key).<br> |
|
||||
| <a href="#color" id="color"><code>--color</code></a> | Colorize debug output (the HTTP response output is not colorized).<br><br>This is a cli-only option.<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).<br> |
|
||||
| <a href="#connect-to" id="connect-to"><code>--connect-to <HOST1:PORT1:HOST2:PORT2></code></a> | For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option can be used several times in a command line.<br><br>See also [`--resolve`](#resolve).<br> |
|
||||
| <a href="#continue-on-error" id="continue-on-error"><code>--continue-on-error</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><br>This is a cli-only 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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#delay" id="delay"><code>--delay <MILLISECONDS></code></a> | Sets delay before each request.<br> |
|
||||
| <a href="#error-format" id="error-format"><code>--error-format <FORMAT></code></a> | Control the format of error message (short by default or long)<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.<br>When it is not explicitly defined, files are relative to the current directory in which Hurl is running.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#from-entry" id="from-entry"><code>--from-entry <ENTRY_NUMBER></code></a> | Execute Hurl file from ENTRY_NUMBER (starting at 1).<br><br>This is a cli-only 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><br>This is a cli-only option.<br> |
|
||||
| <a href="#http10" id="http10"><code>-0, --http1.0</code></a> | Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.<br> |
|
||||
| <a href="#http11" id="http11"><code>--http1.1</code></a> | Tells Hurl to use HTTP version 1.1.<br> |
|
||||
| <a href="#http2" id="http2"><code>--http2</code></a> | Tells Hurl to use HTTP version 2.<br>For HTTPS, this means Hurl negotiates HTTP/2 in the TLS handshake. Hurl does this by default.<br>For HTTP, this means Hurl attempts to upgrade the request to HTTP/2 using the Upgrade: request header.<br> |
|
||||
| <a href="#http3" id="http3"><code>--http3</code></a> | Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only available for HTTPS and not for HTTP URLs.<br> |
|
||||
| <a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output<br><br>This is a cli-only option.<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><br>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#ipv4" id="ipv4"><code>-4, --ipv4</code></a> | This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.<br> |
|
||||
| <a href="#ipv6" id="ipv6"><code>-6, --ipv6</code></a> | This option tells Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#key" id="key"><code>--key <KEY></code></a> | Private key file name.<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="#location-trusted" id="location-trusted"><code>--location-trusted</code></a> | Like [`-L, --location`](#location), but allows sending the name + password to all hosts that the site may redirect to.<br>This may or may not introduce a security breach if the site redirects you to a site to which you send your authentication info (which is plaintext in the case of HTTP Basic authentication).<br> |
|
||||
| <a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br><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).<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#netrc" id="netrc"><code>-n, --netrc</code></a> | Scan the .netrc file in the user's home directory for the username and password.<br><br>See also [`--netrc-file`](#netrc-file) and [`--netrc-optional`](#netrc-optional).<br> |
|
||||
| <a href="#netrc-file" id="netrc-file"><code>--netrc-file <FILE></code></a> | Like [`--netrc`](#netrc), but provide the path to the netrc file.<br><br>See also [`--netrc-optional`](#netrc-optional).<br> |
|
||||
| <a href="#netrc-optional" id="netrc-optional"><code>--netrc-optional</code></a> | Similar to [`--netrc`](#netrc), but make the .netrc usage optional.<br><br>See also [`--netrc-file`](#netrc-file).<br> |
|
||||
| <a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#noproxy" id="noproxy"><code>--noproxy <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br><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="#path-as-is" id="path-as-is"><code>--path-as-is</code></a> | Tell Hurl to not handle sequences of /../ or /./ in the given URL path. Normally Hurl will squash or merge them according to standards but with this option set you tell it not to do that.<br> |
|
||||
| <a href="#proxy" id="proxy"><code>-x, --proxy <[PROTOCOL://]HOST[:PORT]></code></a> | Use the specified proxy.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#report-tap" id="report-tap"><code>--report-tap <FILE></code></a> | Generate TAP report.<br><br>If the FILE report already exists, it will be updated with the new test results.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#resolve" id="resolve"><code>--resolve <HOST:PORT:ADDR></code></a> | Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.<br> |
|
||||
| <a href="#retry" id="retry"><code>--retry <NUM></code></a> | Maximum number of retries, 0 for no retries, -1 for unlimited retries. Retry happens 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="#ssl-no-revoke" id="ssl-no-revoke"><code>--ssl-no-revoke</code></a> | (Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#unix-socket" id="unix-socket"><code>--unix-socket <PATH></code></a> | (HTTP) Connect through this Unix domain socket, instead of using the network.<br> |
|
||||
| <a href="#user" id="user"><code>-u, --user <USER:PASSWORD></code></a> | Add basic Authentication header to each request.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<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> |
|
||||
|
||||
## Environment
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH hurl 1 "17 Jan 2024" "hurl 4.3.0-SNAPSHOT" " Hurl Manual"
|
||||
.TH hurl 1 "19 Mar 2024" "hurl 4.3.0-SNAPSHOT" " Hurl Manual"
|
||||
.SH NAME
|
||||
|
||||
hurl - run and test HTTP requests.
|
||||
@ -106,7 +106,8 @@ More information on asserts can be found here \fIhttps://hurl.dev/docs/asserting
|
||||
|
||||
Options that exist in curl have exactly the same semantics.
|
||||
|
||||
Options specified on the command line are defined for every Hurl file's entry.
|
||||
Options specified on the command line are defined for every Hurl file's entry,
|
||||
except if they are tagged as cli-only (can not be defined in the Hurl request [Options] entry)
|
||||
|
||||
For instance:
|
||||
|
||||
@ -147,6 +148,8 @@ See also \fI--key\fP.
|
||||
|
||||
Colorize debug output (the HTTP response output is not colorized).
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--compressed "
|
||||
|
||||
Request a compressed response using one of the algorithms br, gzip, deflate and automatically decompress the content.
|
||||
@ -172,12 +175,16 @@ 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.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-b, --cookie <FILE> "
|
||||
|
||||
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.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-c, --cookie-jar <FILE> "
|
||||
|
||||
Write cookies to FILE after running the session (only for one session).
|
||||
@ -185,6 +192,8 @@ The file will be written using the Netscape cookie file format.
|
||||
|
||||
Combined with \fI-b, --cookie\fP, you can simulate a cookie storage between successive Hurl runs.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--delay <MILLISECONDS> "
|
||||
|
||||
Sets delay before each request.
|
||||
@ -193,11 +202,21 @@ Sets delay before each request.
|
||||
|
||||
Control the format of error message (short by default or long)
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--file-root <DIR> "
|
||||
|
||||
Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.
|
||||
When it is not explicitly defined, files are relative to the current directory in which Hurl is running.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--from-entry <ENTRY_NUMBER> "
|
||||
|
||||
Execute Hurl file from ENTRY_NUMBER (starting at 1).
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--glob <GLOB> "
|
||||
|
||||
Specify input files that match the given glob pattern.
|
||||
@ -205,6 +224,8 @@ Specify input files that match the given glob pattern.
|
||||
Multiple glob flags may be used. This flag supports common Unix glob patterns like *, ? and [].
|
||||
However, to avoid your shell accidentally expanding glob patterns before Hurl handles them, you must use single quotes or double quotes around each pattern.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-0, --http1.0 "
|
||||
|
||||
Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.
|
||||
@ -227,10 +248,14 @@ Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP ve
|
||||
|
||||
Ignore all asserts defined in the Hurl file.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-i, --include "
|
||||
|
||||
Include the HTTP headers in the output
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-k, --insecure "
|
||||
|
||||
This option explicitly allows Hurl to perform "insecure" SSL connections and transfers.
|
||||
@ -241,6 +266,8 @@ Stop between requests.
|
||||
|
||||
This is similar to a break point, You can then continue (Press C) or quit (Press Q).
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-4, --ipv4 "
|
||||
|
||||
This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.
|
||||
@ -253,6 +280,8 @@ This option tells Hurl to use IPv6 addresses only when resolving host names, and
|
||||
|
||||
Output each Hurl file result to JSON. The format is very closed to HAR format.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--key <KEY> "
|
||||
|
||||
Private key file name.
|
||||
@ -278,14 +307,38 @@ Maximum time in seconds that you allow a request/response to take. This is the s
|
||||
|
||||
See also \fI--connect-timeout\fP.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-n, --netrc "
|
||||
|
||||
Scan the .netrc file in the user's home directory for the username and password.
|
||||
|
||||
See also \fI--netrc-file\fP and \fI--netrc-optional\fP.
|
||||
|
||||
.IP "--netrc-file <FILE> "
|
||||
|
||||
Like \fI--netrc\fP, but provide the path to the netrc file.
|
||||
|
||||
See also \fI--netrc-optional\fP.
|
||||
|
||||
.IP "--netrc-optional "
|
||||
|
||||
Similar to \fI--netrc\fP, but make the .netrc usage optional.
|
||||
|
||||
See also \fI--netrc-file\fP.
|
||||
|
||||
.IP "--no-color "
|
||||
|
||||
Do not colorize output.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--no-output "
|
||||
|
||||
Suppress output. By default, Hurl outputs the body of the last response.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--noproxy <HOST(S)> "
|
||||
|
||||
Comma-separated list of hosts which do not use a proxy.
|
||||
@ -310,18 +363,24 @@ Generate HTML report in DIR.
|
||||
|
||||
If the HTML report already exists, it will be updated with the new test results.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--report-junit <FILE> "
|
||||
|
||||
Generate JUnit File.
|
||||
|
||||
If the FILE report already exists, it will be updated with the new test results.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--report-tap <FILE> "
|
||||
|
||||
Generate TAP report.
|
||||
|
||||
If the FILE report already exists, it will be updated with the new test results.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--resolve <HOST:PORT:ADDR> "
|
||||
|
||||
Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.
|
||||
@ -338,15 +397,21 @@ Duration in milliseconds between each retry. Default is 1000 ms.
|
||||
|
||||
(Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.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.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.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.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--unix-socket <PATH> "
|
||||
|
||||
(HTTP) Connect through this Unix domain socket, instead of using the network.
|
||||
@ -355,10 +420,14 @@ Ignore the remaining of the file. It is useful for debugging a session.
|
||||
|
||||
Add basic Authentication header to each request.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-A, --user-agent <NAME> "
|
||||
|
||||
Specify the User-Agent string to send to the HTTP server.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "--variable <NAME=VALUE> "
|
||||
|
||||
Define variable (name/value) to be used in Hurl templates.
|
||||
@ -371,6 +440,8 @@ Each variable is defined as name=value exactly as with \fI--variable\fP option.
|
||||
|
||||
Note that defining a variable twice produces an error.
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
.IP "-v, --verbose "
|
||||
|
||||
Turn on verbose output on standard error stream.
|
||||
|
@ -230,6 +230,12 @@ When it is not explicitly defined, files are relative to the current directory i
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
### --from-entry <ENTRY_NUMBER> {#from-entry}
|
||||
|
||||
Execute Hurl file from ENTRY_NUMBER (starting at 1).
|
||||
|
||||
This is a cli-only option.
|
||||
|
||||
### --glob <GLOB> {#glob}
|
||||
|
||||
Specify input files that match the given glob pattern.
|
||||
|
@ -1,4 +1,4 @@
|
||||
.TH hurl 1 "17 Jan 2024" "hurl 4.3.0-SNAPSHOT" " Hurl Manual"
|
||||
.TH hurl 1 "19 Mar 2024" "hurl 4.3.0-SNAPSHOT" " Hurl Manual"
|
||||
.SH NAME
|
||||
|
||||
hurlfmt - format Hurl files
|
||||
@ -60,28 +60,21 @@ hurlfmt can also be used to convert a curl command-line to Hurl
|
||||
|
||||
.IP "--check "
|
||||
|
||||
Run in 'check' mode. Exits with 0 if input is formatted correctly, 1 otherwise.
|
||||
Run in 'check' mode. Exits with 0 if input is formatted correctly, 1 otherwise.
|
||||
|
||||
This can not be used with \fI--output\fP.
|
||||
|
||||
This option is not stable yet.
|
||||
|
||||
|
||||
.IP "--color "
|
||||
|
||||
Colorize Output.
|
||||
|
||||
|
||||
This can not be used \fI--in-place\fP.
|
||||
|
||||
.IP "--in <FORMAT> "
|
||||
|
||||
.IP "-h, --help "
|
||||
|
||||
Usage help.
|
||||
|
||||
.IP "--in "
|
||||
|
||||
Specify input format: hurl (default) or curl
|
||||
|
||||
Specify input format: hurl or curl.
|
||||
|
||||
.IP "--in-place "
|
||||
|
||||
@ -89,28 +82,28 @@ Modify file in place.
|
||||
|
||||
This can be used only with text output.
|
||||
|
||||
|
||||
.IP "--no-color "
|
||||
|
||||
Do not colorize Output.
|
||||
Do not colorize output.
|
||||
|
||||
.IP "--out <FORMAT> "
|
||||
|
||||
.IP "--out "
|
||||
Specify output format: hurl, json or html.
|
||||
|
||||
.IP "-o, --output <FILE> "
|
||||
|
||||
Specify output format: hurl (default), json or html
|
||||
|
||||
.IP "-o, --output <file> "
|
||||
|
||||
Write output to <file> instead of stdout.
|
||||
|
||||
Write output to FILE instead of stdout.
|
||||
|
||||
.IP "--standalone "
|
||||
|
||||
Output full html file with css instead of html fragment (default).
|
||||
|
||||
|
||||
This can be used only with html output.
|
||||
|
||||
.IP "-h, --help "
|
||||
|
||||
Usage help.
|
||||
|
||||
|
||||
.IP "-V, --version "
|
||||
|
||||
|
9
docs/spec/options/hurl/from_entry.option
Normal file
9
docs/spec/options/hurl/from_entry.option
Normal file
@ -0,0 +1,9 @@
|
||||
name: from_entry
|
||||
long: from-entry
|
||||
value: ENTRY_NUMBER
|
||||
value_parser: clap::value_parser!(u32).range(1..)
|
||||
help: Execute Hurl file from ENTRY_NUMBER (starting at 1)
|
||||
conflict: interactive
|
||||
cli_only: true
|
||||
---
|
||||
Execute Hurl file from ENTRY_NUMBER (starting at 1).
|
1
integration/hurl/tests_failed/entry.err
Normal file
1
integration/hurl/tests_failed/entry.err
Normal file
@ -0,0 +1 @@
|
||||
warning: No entry have been executed for file tests_failed/entry.hurl
|
1
integration/hurl/tests_failed/entry.exit
Normal file
1
integration/hurl/tests_failed/entry.exit
Normal file
@ -0,0 +1 @@
|
||||
0
|
7
integration/hurl/tests_failed/entry.hurl
Normal file
7
integration/hurl/tests_failed/entry.hurl
Normal file
@ -0,0 +1,7 @@
|
||||
GET http://localhost:8000/hello
|
||||
|
||||
GET http://localhost:8000/hello
|
||||
|
||||
GET http://localhost:8000/hello
|
||||
|
||||
GET http://localhost:8000/hello
|
2
integration/hurl/tests_ok/to_entry.ps1 → integration/hurl/tests_failed/entry.ps1
Normal file → Executable file
2
integration/hurl/tests_ok/to_entry.ps1 → integration/hurl/tests_failed/entry.ps1
Normal file → Executable file
@ -1,3 +1,3 @@
|
||||
Set-StrictMode -Version latest
|
||||
$ErrorActionPreference = 'Stop'
|
||||
hurl tests_ok/to_entry.hurl --to-entry 3 --verbose
|
||||
hurl --from-entry 10 --to-entry 1 tests_failed/entry.hurl
|
3
integration/hurl/tests_failed/entry.sh
Executable file
3
integration/hurl/tests_failed/entry.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
set -Eeuo pipefail
|
||||
hurl --from-entry 10 --to-entry 1 tests_failed/entry.hurl
|
@ -1,3 +1,3 @@
|
||||
curl 'http://localhost:8000/to-entry/1'
|
||||
curl 'http://localhost:8000/to-entry/2'
|
||||
curl 'http://localhost:8000/to-entry/3'
|
||||
curl 'http://localhost:8000/to-entry/4'
|
35
integration/hurl/tests_ok/entry.hurl
Normal file
35
integration/hurl/tests_ok/entry.hurl
Normal file
@ -0,0 +1,35 @@
|
||||
GET http://localhost:8000/to-entry/1
|
||||
[Options]
|
||||
output: -
|
||||
HTTP 200
|
||||
`Reached entry 1\n`
|
||||
|
||||
GET http://localhost:8000/to-entry/2
|
||||
[Options]
|
||||
output: -
|
||||
HTTP 200
|
||||
`Reached entry 2\n`
|
||||
|
||||
GET http://localhost:8000/to-entry/3
|
||||
[Options]
|
||||
output: -
|
||||
HTTP 200
|
||||
`Reached entry 3\n`
|
||||
|
||||
GET http://localhost:8000/to-entry/4
|
||||
[Options]
|
||||
output: -
|
||||
HTTP 200
|
||||
`Reached entry 4\n`
|
||||
|
||||
GET http://localhost:8000/to-entry/5
|
||||
[Options]
|
||||
output: -
|
||||
HTTP 200
|
||||
`Reached entry 5\n`
|
||||
|
||||
GET http://localhost:8000/to-entry/6
|
||||
[Options]
|
||||
output: -
|
||||
HTTP 200
|
||||
`Reached entry 6\n`
|
3
integration/hurl/tests_ok/entry.out
Normal file
3
integration/hurl/tests_ok/entry.out
Normal file
@ -0,0 +1,3 @@
|
||||
Reached entry 2
|
||||
Reached entry 3
|
||||
Reached entry 4
|
3
integration/hurl/tests_ok/entry.ps1
Normal file
3
integration/hurl/tests_ok/entry.ps1
Normal file
@ -0,0 +1,3 @@
|
||||
Set-StrictMode -Version latest
|
||||
$ErrorActionPreference = 'Stop'
|
||||
hurl --from-entry 2 --to-entry 4 --no-output tests_ok/entry.hurl
|
@ -4,4 +4,4 @@ from app import app
|
||||
|
||||
@app.route("/to-entry/<entry_count>")
|
||||
def to_entry(entry_count: 1):
|
||||
return f"Reached entry {entry_count}"
|
||||
return f"Reached entry {entry_count}\n"
|
3
integration/hurl/tests_ok/entry.sh
Executable file
3
integration/hurl/tests_ok/entry.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
set -Eeuo pipefail
|
||||
hurl --from-entry 2 --to-entry 4 --no-output tests_ok/entry.hurl
|
@ -39,6 +39,8 @@ Options:
|
||||
--location-trusted
|
||||
Follow redirects but allows sending the name + password to all hosts that the site may
|
||||
redirect to.
|
||||
--from-entry <ENTRY_NUMBER>
|
||||
Execute Hurl file from ENTRY_NUMBER (starting at 1)
|
||||
--glob <GLOB>
|
||||
Specify input files that match the given GLOB. Multiple glob flags may be used
|
||||
-0, --http1.0
|
||||
|
@ -1,19 +0,0 @@
|
||||
GET http://localhost:8000/to-entry/1
|
||||
HTTP 200
|
||||
`Reached entry 1`
|
||||
|
||||
GET http://localhost:8000/to-entry/2
|
||||
HTTP 200
|
||||
`Reached entry 2`
|
||||
|
||||
GET http://localhost:8000/to-entry/3
|
||||
HTTP 200
|
||||
`Reached entry 3`
|
||||
|
||||
GET http://localhost:8000/to-entry/4
|
||||
HTTP 200
|
||||
`Reached entry 4`
|
||||
|
||||
GET http://localhost:8000/to-entry/5
|
||||
HTTP 200
|
||||
`Reached entry 5`
|
@ -1 +0,0 @@
|
||||
Reached entry 3
|
@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -Eeuo pipefail
|
||||
hurl tests_ok/to_entry.hurl --to-entry 3 --verbose
|
@ -913,7 +913,8 @@ More information on asserts can be found here [https://hurl.dev/docs/asserting-r
|
||||
|
||||
Options that exist in curl have exactly the same semantics.
|
||||
|
||||
Options specified on the command line are defined for every Hurl file's entry.
|
||||
Options specified on the command line are defined for every Hurl file's entry,
|
||||
except if they are tagged as cli-only (can not be defined in the Hurl request [Options] entry)
|
||||
|
||||
For instance:
|
||||
|
||||
@ -935,62 +936,66 @@ HTTP 200
|
||||
|
||||
will follow a redirection only for the second entry.
|
||||
|
||||
| Option | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <a href="#aws-sigv4" id="aws-sigv4"><code>--aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]></code></a> | Generate an `Authorization` header with an AWS SigV4 signature.<br><br>Use [`-u, --user`](#user) to specify Access Key Id (username) and Secret Key (password).<br><br>To use temporary session credentials (e.g. for an AWS IAM Role), add the `X-Amz-Security-Token` header containing the session token.<br> |
|
||||
| <a href="#cacert" id="cacert"><code>--cacert <FILE></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="#cert" id="cert"><code>-E, --cert <CERTIFICATE[:PASSWORD]></code></a> | Client certificate file and password.<br><br>See also [`--key`](#key).<br> |
|
||||
| <a href="#color" id="color"><code>--color</code></a> | Colorize debug output (the HTTP response output is not colorized).<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).<br> |
|
||||
| <a href="#connect-to" id="connect-to"><code>--connect-to <HOST1:PORT1:HOST2:PORT2></code></a> | For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option can be used several times in a command line.<br><br>See also [`--resolve`](#resolve).<br> |
|
||||
| <a href="#continue-on-error" id="continue-on-error"><code>--continue-on-error</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="#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="#delay" id="delay"><code>--delay <MILLISECONDS></code></a> | Sets delay before each request.<br> |
|
||||
| <a href="#error-format" id="error-format"><code>--error-format <FORMAT></code></a> | Control the format of error message (short by default or long)<br> |
|
||||
| <a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.<br>When it is not explicitly defined, files are relative to the current directory in which Hurl is running.<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="#http10" id="http10"><code>-0, --http1.0</code></a> | Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.<br> |
|
||||
| <a href="#http11" id="http11"><code>--http1.1</code></a> | Tells Hurl to use HTTP version 1.1.<br> |
|
||||
| <a href="#http2" id="http2"><code>--http2</code></a> | Tells Hurl to use HTTP version 2.<br>For HTTPS, this means Hurl negotiates HTTP/2 in the TLS handshake. Hurl does this by default.<br>For HTTP, this means Hurl attempts to upgrade the request to HTTP/2 using the Upgrade: request header.<br> |
|
||||
| <a href="#http3" id="http3"><code>--http3</code></a> | Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only available for HTTPS and not for HTTP URLs.<br> |
|
||||
| <a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br> |
|
||||
| <a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output<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><br>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br> |
|
||||
| <a href="#ipv4" id="ipv4"><code>-4, --ipv4</code></a> | This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.<br> |
|
||||
| <a href="#ipv6" id="ipv6"><code>-6, --ipv6</code></a> | This option tells Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4.<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="#key" id="key"><code>--key <KEY></code></a> | Private key file name.<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="#location-trusted" id="location-trusted"><code>--location-trusted</code></a> | Like [`-L, --location`](#location), but allows sending the name + password to all hosts that the site may redirect to.<br>This may or may not introduce a security breach if the site redirects you to a site to which you send your authentication info (which is plaintext in the case of HTTP Basic authentication).<br> |
|
||||
| <a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br><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).<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 <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br><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="#path-as-is" id="path-as-is"><code>--path-as-is</code></a> | Tell Hurl to not handle sequences of /../ or /./ in the given URL path. Normally Hurl will squash or merge them according to standards but with this option set you tell it not to do that.<br> |
|
||||
| <a href="#proxy" id="proxy"><code>-x, --proxy <[PROTOCOL://]HOST[:PORT]></code></a> | Use the specified proxy.<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-tap" id="report-tap"><code>--report-tap <FILE></code></a> | Generate TAP report.<br><br>If the FILE report already exists, it will be updated with the new test results.<br> |
|
||||
| <a href="#resolve" id="resolve"><code>--resolve <HOST:PORT:ADDR></code></a> | Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.<br> |
|
||||
| <a href="#retry" id="retry"><code>--retry <NUM></code></a> | Maximum number of retries, 0 for no retries, -1 for unlimited retries. Retry happens 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="#ssl-no-revoke" id="ssl-no-revoke"><code>--ssl-no-revoke</code></a> | (Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.<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="#unix-socket" id="unix-socket"><code>--unix-socket <PATH></code></a> | (HTTP) Connect through this Unix domain socket, instead of using the network.<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> |
|
||||
| Option | Description |
|
||||
|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| <a href="#aws-sigv4" id="aws-sigv4"><code>--aws-sigv4 <PROVIDER1[:PROVIDER2[:REGION[:SERVICE]]]></code></a> | Generate an `Authorization` header with an AWS SigV4 signature.<br><br>Use [`-u, --user`](#user) to specify Access Key Id (username) and Secret Key (password).<br><br>To use temporary session credentials (e.g. for an AWS IAM Role), add the `X-Amz-Security-Token` header containing the session token.<br> |
|
||||
| <a href="#cacert" id="cacert"><code>--cacert <FILE></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="#cert" id="cert"><code>-E, --cert <CERTIFICATE[:PASSWORD]></code></a> | Client certificate file and password.<br><br>See also [`--key`](#key).<br> |
|
||||
| <a href="#color" id="color"><code>--color</code></a> | Colorize debug output (the HTTP response output is not colorized).<br><br>This is a cli-only option.<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).<br> |
|
||||
| <a href="#connect-to" id="connect-to"><code>--connect-to <HOST1:PORT1:HOST2:PORT2></code></a> | For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option can be used several times in a command line.<br><br>See also [`--resolve`](#resolve).<br> |
|
||||
| <a href="#continue-on-error" id="continue-on-error"><code>--continue-on-error</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><br>This is a cli-only 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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#delay" id="delay"><code>--delay <MILLISECONDS></code></a> | Sets delay before each request.<br> |
|
||||
| <a href="#error-format" id="error-format"><code>--error-format <FORMAT></code></a> | Control the format of error message (short by default or long)<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#file-root" id="file-root"><code>--file-root <DIR></code></a> | Set root directory to import files in Hurl. This is used for files in multipart form data, request body and response output.<br>When it is not explicitly defined, files are relative to the current directory in which Hurl is running.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#from-entry" id="from-entry"><code>--from-entry <ENTRY_NUMBER></code></a> | Execute Hurl file from ENTRY_NUMBER (starting at 1).<br><br>This is a cli-only 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><br>This is a cli-only option.<br> |
|
||||
| <a href="#http10" id="http10"><code>-0, --http1.0</code></a> | Tells Hurl to use HTTP version 1.0 instead of using its internally preferred HTTP version.<br> |
|
||||
| <a href="#http11" id="http11"><code>--http1.1</code></a> | Tells Hurl to use HTTP version 1.1.<br> |
|
||||
| <a href="#http2" id="http2"><code>--http2</code></a> | Tells Hurl to use HTTP version 2.<br>For HTTPS, this means Hurl negotiates HTTP/2 in the TLS handshake. Hurl does this by default.<br>For HTTP, this means Hurl attempts to upgrade the request to HTTP/2 using the Upgrade: request header.<br> |
|
||||
| <a href="#http3" id="http3"><code>--http3</code></a> | Tells Hurl to try HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only available for HTTPS and not for HTTP URLs.<br> |
|
||||
| <a href="#ignore-asserts" id="ignore-asserts"><code>--ignore-asserts</code></a> | Ignore all asserts defined in the Hurl file.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#include" id="include"><code>-i, --include</code></a> | Include the HTTP headers in the output<br><br>This is a cli-only option.<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><br>This is similar to a break point, You can then continue (Press C) or quit (Press Q).<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#ipv4" id="ipv4"><code>-4, --ipv4</code></a> | This option tells Hurl to use IPv4 addresses only when resolving host names, and not for example try IPv6.<br> |
|
||||
| <a href="#ipv6" id="ipv6"><code>-6, --ipv6</code></a> | This option tells Hurl to use IPv6 addresses only when resolving host names, and not for example try IPv4.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#key" id="key"><code>--key <KEY></code></a> | Private key file name.<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="#location-trusted" id="location-trusted"><code>--location-trusted</code></a> | Like [`-L, --location`](#location), but allows sending the name + password to all hosts that the site may redirect to.<br>This may or may not introduce a security breach if the site redirects you to a site to which you send your authentication info (which is plaintext in the case of HTTP Basic authentication).<br> |
|
||||
| <a href="#max-redirs" id="max-redirs"><code>--max-redirs <NUM></code></a> | Set maximum number of redirection-followings allowed<br><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).<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#netrc" id="netrc"><code>-n, --netrc</code></a> | Scan the .netrc file in the user's home directory for the username and password.<br><br>See also [`--netrc-file`](#netrc-file) and [`--netrc-optional`](#netrc-optional).<br> |
|
||||
| <a href="#netrc-file" id="netrc-file"><code>--netrc-file <FILE></code></a> | Like [`--netrc`](#netrc), but provide the path to the netrc file.<br><br>See also [`--netrc-optional`](#netrc-optional).<br> |
|
||||
| <a href="#netrc-optional" id="netrc-optional"><code>--netrc-optional</code></a> | Similar to [`--netrc`](#netrc), but make the .netrc usage optional.<br><br>See also [`--netrc-file`](#netrc-file).<br> |
|
||||
| <a href="#no-color" id="no-color"><code>--no-color</code></a> | Do not colorize output.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#noproxy" id="noproxy"><code>--noproxy <HOST(S)></code></a> | Comma-separated list of hosts which do not use a proxy.<br><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="#path-as-is" id="path-as-is"><code>--path-as-is</code></a> | Tell Hurl to not handle sequences of /../ or /./ in the given URL path. Normally Hurl will squash or merge them according to standards but with this option set you tell it not to do that.<br> |
|
||||
| <a href="#proxy" id="proxy"><code>-x, --proxy <[PROTOCOL://]HOST[:PORT]></code></a> | Use the specified proxy.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#report-tap" id="report-tap"><code>--report-tap <FILE></code></a> | Generate TAP report.<br><br>If the FILE report already exists, it will be updated with the new test results.<br><br>This is a cli-only option.<br> |
|
||||
| <a href="#resolve" id="resolve"><code>--resolve <HOST:PORT:ADDR></code></a> | Provide a custom address for a specific host and port pair. Using this, you can make the Hurl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line.<br> |
|
||||
| <a href="#retry" id="retry"><code>--retry <NUM></code></a> | Maximum number of retries, 0 for no retries, -1 for unlimited retries. Retry happens 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="#ssl-no-revoke" id="ssl-no-revoke"><code>--ssl-no-revoke</code></a> | (Windows) This option tells Hurl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<br> |
|
||||
| <a href="#unix-socket" id="unix-socket"><code>--unix-socket <PATH></code></a> | (HTTP) Connect through this Unix domain socket, instead of using the network.<br> |
|
||||
| <a href="#user" id="user"><code>-u, --user <USER:PASSWORD></code></a> | Add basic Authentication header to each request.<br><br>This is a cli-only option.<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><br>This is a cli-only option.<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><br>This is a cli-only option.<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> |
|
||||
|
||||
## Environment
|
||||
|
||||
@ -1047,8 +1052,8 @@ For Debian / Ubuntu, Hurl can be installed using a binary .deb file provided in
|
||||
|
||||
```shell
|
||||
$ VERSION=4.2.0
|
||||
$ curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/$VERSION/hurl_$VERSION_amd64.deb
|
||||
$ sudo apt update && sudo apt install ./hurl_$VERSION_amd64.deb
|
||||
$ curl --location --remote-name https://github.com/Orange-OpenSource/hurl/releases/download/$VERSION/hurl_${VERSION}_amd64.deb
|
||||
$ sudo apt update && sudo apt install ./hurl_${VERSION}_amd64.deb
|
||||
```
|
||||
|
||||
#### Alpine
|
||||
|
@ -169,6 +169,16 @@ pub fn follow_location_trusted() -> clap::Arg {
|
||||
.action(clap::ArgAction::SetTrue)
|
||||
}
|
||||
|
||||
pub fn from_entry() -> clap::Arg {
|
||||
clap::Arg::new("from_entry")
|
||||
.long("from-entry")
|
||||
.value_name("ENTRY_NUMBER")
|
||||
.value_parser(clap::value_parser!(u32).range(1..))
|
||||
.help("Execute Hurl file from ENTRY_NUMBER (starting at 1)")
|
||||
.conflicts_with("interactive")
|
||||
.num_args(1)
|
||||
}
|
||||
|
||||
pub fn glob() -> clap::Arg {
|
||||
clap::Arg::new("glob")
|
||||
.long("glob")
|
||||
|
@ -150,6 +150,10 @@ pub fn follow_location(arg_matches: &ArgMatches) -> (bool, bool) {
|
||||
(follow_location, follow_location_trusted)
|
||||
}
|
||||
|
||||
pub fn from_entry(arg_matches: &ArgMatches) -> Option<usize> {
|
||||
get::<u32>(arg_matches, "from_entry").map(|x| x as usize)
|
||||
}
|
||||
|
||||
pub fn html_dir(arg_matches: &ArgMatches) -> Result<Option<PathBuf>, CliOptionsError> {
|
||||
if let Some(dir) = get::<String>(arg_matches, "report_html") {
|
||||
let path = Path::new(&dir);
|
||||
|
@ -56,6 +56,7 @@ pub struct CliOptions {
|
||||
pub file_root: Option<String>,
|
||||
pub follow_location: bool,
|
||||
pub follow_location_trusted: bool,
|
||||
pub from_entry: Option<usize>,
|
||||
pub html_dir: Option<PathBuf>,
|
||||
pub http_version: Option<HttpVersion>,
|
||||
pub ignore_asserts: bool,
|
||||
@ -175,6 +176,7 @@ pub fn parse() -> Result<CliOptions, CliOptionsError> {
|
||||
.arg(commands::file_root())
|
||||
.arg(commands::follow_location())
|
||||
.arg(commands::follow_location_trusted())
|
||||
.arg(commands::from_entry())
|
||||
.arg(commands::glob())
|
||||
.arg(commands::http10())
|
||||
.arg(commands::http11())
|
||||
@ -252,6 +254,7 @@ fn parse_matches(arg_matches: &ArgMatches) -> Result<CliOptions, CliOptionsError
|
||||
let error_format = matches::error_format(arg_matches);
|
||||
let file_root = matches::file_root(arg_matches);
|
||||
let (follow_location, follow_location_trusted) = matches::follow_location(arg_matches);
|
||||
let from_entry = matches::from_entry(arg_matches);
|
||||
let html_dir = matches::html_dir(arg_matches)?;
|
||||
let http_version = matches::http_version(arg_matches);
|
||||
let ignore_asserts = matches::ignore_asserts(arg_matches);
|
||||
@ -304,6 +307,7 @@ fn parse_matches(arg_matches: &ArgMatches) -> Result<CliOptions, CliOptionsError
|
||||
file_root,
|
||||
follow_location,
|
||||
follow_location_trusted,
|
||||
from_entry,
|
||||
html_dir,
|
||||
http_version,
|
||||
ignore_asserts,
|
||||
@ -371,6 +375,7 @@ impl CliOptions {
|
||||
let delay = self.delay;
|
||||
let follow_location = self.follow_location;
|
||||
let follow_location_trusted = self.follow_location_trusted;
|
||||
let from_entry = self.from_entry;
|
||||
let http_version = match self.http_version {
|
||||
Some(version) => version.into(),
|
||||
None => RequestedHttpVersion::default(),
|
||||
@ -453,6 +458,7 @@ impl CliOptions {
|
||||
.cookie_input_file(cookie_input_file)
|
||||
.follow_location(follow_location)
|
||||
.follow_location_trusted(follow_location_trusted)
|
||||
.from_entry(from_entry)
|
||||
.http_version(http_version)
|
||||
.ignore_asserts(ignore_asserts)
|
||||
.insecure(insecure)
|
||||
|
@ -158,13 +158,9 @@ fn run_entries(
|
||||
let mut http_client = Client::new();
|
||||
let mut entries_result = vec![];
|
||||
let mut variables = variables.clone();
|
||||
let mut entry_index = 1;
|
||||
let mut entry_index = runner_options.from_entry.unwrap_or(1);
|
||||
let n = runner_options.to_entry.unwrap_or(entries.len());
|
||||
let mut retry_count = 1;
|
||||
let n = if let Some(to_entry) = runner_options.to_entry {
|
||||
to_entry
|
||||
} else {
|
||||
entries.len()
|
||||
};
|
||||
let default_verbosity = logger.verbosity;
|
||||
let start = Instant::now();
|
||||
let timestamp = Utc::now().timestamp();
|
||||
|
@ -37,6 +37,7 @@ pub struct RunnerOptionsBuilder {
|
||||
delay: Duration,
|
||||
follow_location: bool,
|
||||
follow_location_trusted: bool,
|
||||
from_entry: Option<usize>,
|
||||
http_version: RequestedHttpVersion,
|
||||
ignore_asserts: bool,
|
||||
insecure: bool,
|
||||
@ -79,6 +80,7 @@ impl Default for RunnerOptionsBuilder {
|
||||
delay: Duration::from_millis(0),
|
||||
follow_location: false,
|
||||
follow_location_trusted: false,
|
||||
from_entry: None,
|
||||
http_version: RequestedHttpVersion::default(),
|
||||
ignore_asserts: false,
|
||||
insecure: false,
|
||||
@ -218,6 +220,12 @@ impl RunnerOptionsBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
/// Executes Hurl file from `from_entry` (starting at 1), ignores the beginning of the file.
|
||||
pub fn from_entry(&mut self, from_entry: Option<usize>) -> &mut Self {
|
||||
self.from_entry = from_entry;
|
||||
self
|
||||
}
|
||||
|
||||
/// Set requested HTTP version (can be different of the effective HTTP version).
|
||||
pub fn http_version(&mut self, version: RequestedHttpVersion) -> &mut Self {
|
||||
self.http_version = version;
|
||||
@ -383,6 +391,7 @@ impl RunnerOptionsBuilder {
|
||||
cookie_input_file: self.cookie_input_file.clone(),
|
||||
follow_location: self.follow_location,
|
||||
follow_location_trusted: self.follow_location_trusted,
|
||||
from_entry: self.from_entry,
|
||||
http_version: self.http_version,
|
||||
ignore_asserts: self.ignore_asserts,
|
||||
insecure: self.insecure,
|
||||
@ -426,6 +435,7 @@ pub struct RunnerOptions {
|
||||
pub(crate) cookie_input_file: Option<String>,
|
||||
pub(crate) follow_location: bool,
|
||||
pub(crate) follow_location_trusted: bool,
|
||||
pub(crate) from_entry: Option<usize>,
|
||||
pub(crate) http_version: RequestedHttpVersion,
|
||||
pub(crate) ignore_asserts: bool,
|
||||
pub(crate) ip_resolve: IpResolve,
|
||||
|
Loading…
Reference in New Issue
Block a user