Features
Request
- http methods:
get/post/put/delete/patch/head/options
- build request:
- post form
- send cookie
- send body via file
body = "@./post_body_file"
- basic auth
- share cookie
- send and parse
application/msgpack
- disable_redirect
Assert
- proto/protoMajor/protoMinor
- status/statusCode/contentLength/contentType/body
- headers
- cookies
- error:
assert.error_contains
for send fail - operators:
- numeric:
_in/_not_in/_lt/_lte/_gt/_gte
- string:
_contains/_not_contains/_startswith/_endswith
- latency
- has redirected or not
- json: use jmespath to get value then assert
- xml/html: use xpath to get value then assert
- yaml/toml: convert to json then use jmespath to get value then assert
Config file
- use a config file:
./fetch run -c examples/config/dev.yaml examples/request_get.yaml
- config:
debug=true/false
to trigger debug print - config:
failFast=true/false
, will exit if got one fail case while running - config:
timeout=1000
, will set request timeout to 1000ms, fail if exceed
command line
- show progress bar
- show run result with stats
exit code != 0
if got any fail assertions- show the fail assertion line number in file
- verbose mode:
./fetch run -v examples/rquest_get.yaml
or export FETCH_DEBUG = true
- quiet mode:
-q/--quiet
to silent the print, for check $?
only - support run cases in order,
./fetch run -c examples/config/order.yaml
- support run cases in parallel,
./fetch run -c *.yaml -p 10
- support case retry/repeat