fetch
fetch is a lightweight and powerful API testing tool.
You can use git and configuration files (e.g. yaml/toml) to maintain all test cases.
See https://wklken.me/fetch for more information.
Installation
Binary releases
See the available binaries for different operating systems/architectures from the releases page.
go install
go install github.com/wklken/fetch@latest
hombrew
brew tap wklken/fetch
brew install fetch
docker
docker run --rm --net=host wklken/fetch help
# apple m1*/m2*
docker pull --platform=linux/amd64 wklken/fetch
docker run --rm --net=host wklken/fetch help
Build from source
git clone https://github.com/wklken/fetch.git
cd fetch
make build
Getting Started
request:
method: get
url: 'http://httpbin.org/get'
assert:
status: ok
statusCode: 200
contentLength_gt: 180
contentType: application/json
run
$ ./fetch run http_get.yaml
See examples for a variety of examples.
Features
- config file types: yaml/toml/json/properties/ini
- http methods: get/post/put/delete/patch/head/options
- build request: file/template(go template)/set cookie/basic auth/share cookie/msgpack
- assert response:
- status/statusCode/contentLength/contentType/body
- latency
- numeric support
_in/_not_in/_lt/_lte/_gt/_gte
- string support
_contains/_not_contains/_startswith/_endswith
- proto/protoMajor/protoMinor
- redirect
- header/cookie/error/json(jmespath)/html(xpath)/xml(xpath)/yaml/toml/redirect
- cli:
- progress bar
- show stats
- verbose mode:
-v
or set export FETCH_DEBUG = true
- quiet mode:
-q/--quiet
to silent the print, for check $?
only
- run in order / run in parallel
- set failFast/timeout
Feedback
If you have any feedback, please create an issue
License
Copyright (c) 2021-present wklken
Licensed under MIT License