• Stars
    star
    28
  • Rank 882,216 (Top 18 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simplified Integration Testing Using YAML and JQ

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-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

Documentation is available at https://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.com/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.com/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.com/abhimanyu003/probe@latest

Wget

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!

Manually

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!

💥 Usages

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

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.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

Form Data

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

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-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

License

MIT