Simplified End-to-End Testing Using YAML and JQ.
Full documentation is available on the official website:https://abhimanyu003.github.io/probe/
- Cross-platform:Runs on windows, mac and linux.
- JQ:Full in-builtJQsupport ( no need to install JQ ).
- Parallel:Fast parallel testing for multiple tests
- Multi-Stages:Call multiple systems and services in single test.
- Variables:Supports env and user defined variables.
- Setup and Teardown:Run things beforeEach, afterEach, beforeAll, afterAll, stages.
- Logs:powerful logs that, dump the complete request and response content.
- Request Builder:Easy request builder that allows you to set:
- Allow Insecure
- Basic Auth
- Bearer Auth Token
- Body
- Form Data
- Headers
- Json
- Query Param
- Sleep
- Timeout
- User-Agent
- Upload
Documentation is available athttps://abhimanyu003.github.io/probe/
Probe support wide variety of OS
- linux, darwin, windows
- 386, amd64, arm64
curl -L https://raw.githubusercontent /abhimanyu003/probe/main/install.sh | bash
This script installs the latest release by default.
brew install abhimanyu003/tap/probe
scoop bucket add probe https://github /abhimanyu003/scoop-bucket.git
scoop install probe
yay -S probe-bin
At this point we have to alias while using snap
sudo snap install go-probe
sudo snap alias go-probe.probe probe
go install github /abhimanyu003/probe@latest
Use wget to download, gzipped pre-compiled binaries.
For instance,VERSION=v0.0.1
andBINARY=probe_0.0.1_linux_amd64
wget https://github /abhimanyu003/probe/releases/download/${VERSION}/${BINARY}.tar.gz -O - |\
tar xz && mv probe /usr/bin/probe
You can find list of binary and release overRelease Page!
Download the pre-compiled binaries from theRelease!page and copy them to the desired location.
You can download
- DEB
- RPM
- Pre-compiled binary
VisitRelease!
Full documentation is available on the official website:https://abhimanyu003.github.io/probe/
Quick Example
- Create
main.yaml
file
name:Writing Test
stages:
-name:first stage
request:
url:"https://httpbin.org/get"
method:GET
assert:
status:200
- Run
probe run main.yaml
Here are some quick example that shows how you can use probe with YAML + JQ. This will help you get some quick idea on how you can write your API tests
name:JQ Example
stages:
-name:get products request
request:
url:"https://dummyjson /products"
method:GET
assert:
status:200
body:
-select:.products | length
want:50
-select:.products[0].id | isnormal
want:true
-select:.products[0].images | length
want:5
-select:.products[] | select(.title == "iPhone 9" ) |.id
want:1
name:Form Data
stages:
-name:add product
request:
url:"https://dummyjson /products/add"
method:POST
headers:
Content-Type:'application/json'
formData:
title:'BMW Pencil'
assert:
status:200
body:
-select:.id
want:101
This project welcomes your PR and issues. For example, refactoring, adding features, correcting English, etc.
A quick development guide can be found on.Developer-Guideswiki page.
If you need any help, you can contact me onTwitter.
Thanks to all the people who already contributed and libraries imported ingo.mod