Skip to content

abhimanyu003/probe

Repository files navigation

Probe

Simplified End-to-End Testing Using YAML and JQ.

Full documentation is available on the official website:https://abhimanyu003.github.io/probe/

All Features

  • 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

Documentation is available athttps://abhimanyu003.github.io/probe/

Tutorials and examples

🔋 Install Probe

Probe support wide variety of OS

  • linux, darwin, windows
  • 386, amd64, arm64

Auto Install

curl -L https://raw.githubusercontent /abhimanyu003/probe/main/install.sh | bash

This script installs the latest release by default.

Brew

brew install abhimanyu003/tap/probe

Scoop

scoop bucket add probe https://github /abhimanyu003/scoop-bucket.git
scoop install probe

Arch Linux

yay -S probe-bin

Snap

At this point we have to alias while using snap

sudo snap install go-probe
sudo snap alias go-probe.probe probe

Go Install

go install github /abhimanyu003/probe@latest

Wget

Use wget to download, gzipped pre-compiled binaries.

For instance,VERSION=v0.0.1andBINARY=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!

Manually

Download the pre-compiled binaries from theRelease!page and copy them to the desired location.

You can download

  • DEB
  • RPM
  • Pre-compiled binary

VisitRelease!

💥 Usages

Full documentation is available on the official website:https://abhimanyu003.github.io/probe/

Quick Example

  • Createmain.yamlfile
name:Writing Test
stages:
-name:first stage
request:
url:"https://httpbin.org/get"
method:GET
assert:
status:200
  • Run
probe run main.yaml

Examples

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

JQ Example

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

Form Data

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

Contribution

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

License

MIT