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-built JQ support ( 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 at https://abhimanyu003.github.io/probe/
Probe support wide variety of OS
- linux, darwin, windows
- 386, amd64, arm64
curl -L https://raw.githubusercontent.com/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.com/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.com/abhimanyu003/probe@latest
Use wget to download, gzipped pre-compiled binaries.
For instance, VERSION=v0.0.1
and BINARY=probe_0.0.1_linux_amd64
wget https://github.com/abhimanyu003/probe/releases/download/${VERSION}/${BINARY}.tar.gz -O - |\
tar xz && mv probe /usr/bin/probe
You can find list of binary and release over Release Page!
Download the pre-compiled binaries from the Release! page and copy them to the desired location.
You can download
- DEB
- RPM
- Pre-compiled binary
Visit Release!
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.com/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.com/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-Guides wiki page.
If you need any help, you can contact me on Twitter.
Thanks to all the people who already contributed and libraries imported in go.mod