zmarouf / patchgirl

Manual reproducible web API tests for web developers

Home Page:https://patchgirl.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PatchGirl

Build Status GitHub CI

A postman/postwoman like, web app to test your APIs !

How to use

To use PatchGirl, you only need to go to the app page πŸš€. However, for a full experience, you'll to run patchgirl-runner on your computer. It acts as a tiny proxy that runs your request (HTTP, SQL,...) from you computer.

Installing Patchgirl-runner

Linux

Just download the latest binary for linux here and run it:

chmod +x patchgirl-runner-X.Y.Z
./patchgirl-runner-X.Y.Z

MacOS

Either download and run the mac binary from the release (cf Linux section) or use homebrew:

brew install patchgirl/patchgirl/runner
patchgirl-runner # to run patchgirl-runner

nb: Please note that for recent versions of MacOS, if you use the binary method, MacOS will display an error popup stating that the app hasn't been recognized and so is insecure. To overcome this issue, you'll need to "right-click open" the executable from the finder once!

Windows

Windows support is currently on the roadmap.

Features

βœ…: available
πŸ”§: in development
πŸ“: in the roadmap

available feature description
βœ… sign in via github save your data with a Github account
βœ… environment Environment helps you save and reuse variables
βœ… http request Create and play http requests
βœ… Postgres SQL query Create and play Postgres SQL queries
βœ… scenarios Create and Play multiple http requests or postgresql queries one after another
βœ… pre request script Play a script right before executing a request (eg: Include timestamp in the request headers, send a random string in the URL parameters,...)
βœ… post request script Play a script right after executing a request (eg: Assign the response result to a variable, assert that the response status is a 200,...)
βœ… desktop app (Linux & MacOS only as of today) Lightweight desktop proxy so you can play a request targeting a local host
πŸ”§ cross platform desktop application Make the PatchGirl desktop app available on Windows (currently only available on Linux and MacOS
πŸ”§ MySql request Play MySQL queries
πŸ“ websocket
πŸ“ MongoDB queries
πŸ“ Kafka queries
πŸ“ RabbitMQ queries
πŸ“ Shell/Bash queries
πŸ“ websocket
πŸ“ server send events
πŸ“ API documentation Generate documentation from a set of requests
πŸ“ Team mode Share your collections with your team
πŸ“ Keyboard shortcuts

πŸ“’ Scenario of tests

Play multiple requests one after another. This is useful if you want to:

  • Automate your development environment db (eg: create many users,...)
  • Automate the test of your API (eg: create a user then show it then delete it)

πŸ“œ pre-request script

Run a javascript script right before a request is executed. This is useful if you want to:

  • Include timestamp in the request headers
  • Send a random string in the URL parameters

πŸ“œ post-request script

Run a javascript script after a request is executed. This is useful if you want to:

  • Assert for a response status or body
  • Set variables according on the response body

πŸ“¦ Desktop app (AKA patchgirl runner)

Install a desktop app so you can use PatchGirl locally. This is needed when you:

  • Use PatchGirl without internet access
  • Call localhost url
  • Need to play any request that is not HTTP (i.e: Postgresql, MySQL,...)
  • want faster request execution (no round trips to a remote server, everything is done on your computer)

How to build

Please refer to the documentation if you need to build and run PatchGirl locally.

Architecture

architecture

PatchGirl is only built with functional programing languages:

  • NixOS for the operating system
  • Haskell for the backend API
  • Elm for the front end single page app
  • Dhall for everything related to configuration
ezoic increase your site revenue

About

Manual reproducible web API tests for web developers

https://patchgirl.io

License:Mozilla Public License 2.0


Languages

Language:Elm 48.6%Language:Haskell 45.1%Language:Ruby 3.8%Language:PLpgSQL 1.0%Language:Nix 0.8%Language:HTML 0.3%Language:Makefile 0.2%Language:CSS 0.1%Language:NSIS 0.1%