Skip to main content

GetMan is a versatile tool inspired by Postman that simplifies the process of testing and exploring APIs.

Project description

Forks Stargazers Issues MIT License


Logo

GetMan

GetMan is a versatile tool inspired by Postman that simplifies the process of testing and exploring APIs.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Acknowledgments

About The Project

GetMan is a Python-based API testing tool inspired by Postman. It simplifies the process of testing and exploring APIs by providing a simple and intuitive functions for making HTTP requests.

Key features of GetMan include:

  • Versatile HTTP Client: GetMan supports all common HTTP methods and allows you to customize your requests with headers, query parameters, and body data.
  • Queue Management: GetMan allows you to queue your requests and execute them concurrently. This can significantly improve the performance of your program when dealing with a large number of requests.
  • Report Generation: GetMan can generate detailed reports of your API requests, including the request URL, method, status code, headers, and response data.
  • And Much More...

Whether you're a developer testing your own APIs or a tester exploring third-party APIs, GetMan provides a powerful and flexible tool to help you get the job done.

(back to top)

Built With

This project built with the following technologies:

  • Python

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

Before you can use GetMan, you need to have the following software installed on your system:

  • Python
    Install python from https://www.python.org/
    

Installation

To install the library, you can just run the following command:

  1. Install library
    pip install getman
    

(back to top)

Usage

GetMan is designed to be simple and intuitive to use. Below are some examples of how you can use GetMan to test and explore APIs.

Making a Simple GET Request

from getman import GetMan
from getman.constant import HttpMethod
from getman.manager.dict import ParamManager

url = "https://example.com"
version = "your-version"  # Optional
client = GetMan(base_url=url, version=version)
client.add_cookie("sessionid", "RANDOM SESSION ID")

params = ParamManager()
params["category"] = "tools"

route = client.routes("product")
response = client.perform_request(method=HttpMethod.GET, routes=route, params=params.data)

client.get_report(response)

Making a POST Request with JSON Body

from getman import GetMan
from getman.constant import HttpMethod
from getman.manager.dict import DictManager

url = "https://example.com"
version = "your-version"  # Optional
client = GetMan(base_url=url, version=version)
client.add_cookie("sessionid", "RANDOM SESSION ID")

body = DictManager()
body["product_name"] = "getman"

route = client.routes("product")
response = client.perform_request(method=HttpMethod.POST, routes=route, body=body.data)

client.get_report(response)

Making a Queue Request or simulate concurrent requests

from getman import GetMan
from getman.constant import HttpMethod
from getman.manager.dict import DictManager
from getman.utils.decorators import coroutine


@coroutine  # use this to run coroutine
async def main():
    url = "https://example.com"

    client = GetMan(base_url=url)

    body = DictManager()
    body["product_name"] = "getman"

    route = client.routes("product")
    total_request = 100
    for i in range(total_request):
        await client.perform_request(method=HttpMethod.POST, routes=route, body=body.data, queue=True)

    client.execute_queue()  # Execute all queued requests concurrently

For more examples, please refer to the Documentation_

(back to top)

Roadmap

  • Support Mock Server
  • Generate Report such as PDF, HTML, etc
  • Add Security scan
  • Add stress testing

See the open issues for a full list of proposed features ( and known issues).

(back to top)

Contributing

Getman is an open-source project, and we welcome contributions of all kinds. Whether you want to report a bug, request a feature, or submit a pull request, we appreciate your help! Please refer to the contribution guidelines for more information.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Acknowledgments

(back to top)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

getman-1.0.0.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

getman-1.0.0-py3-none-any.whl (23.7 kB view details)

Uploaded Python 3

File details

Details for the file getman-1.0.0.tar.gz.

File metadata

  • Download URL: getman-1.0.0.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for getman-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2af64fcf1b6170ab2dec1057bcec3f07a7a5f48800fd30512abe3ca2a02eecd7
MD5 e1054e9c3d967fbf515f9da98929c09b
BLAKE2b-256 ee5fb3efc12d8cce537a315ff95d41e2dd2225c9776f3cd24ad2a4ec2693ff0f

See more details on using hashes here.

File details

Details for the file getman-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: getman-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 23.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for getman-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2db74fe9d8aa9d90b7a1c5ba6c47d22110fec82f2203a93164f9c5bca031272c
MD5 764c3f063efd5e48adc293b2b20108f7
BLAKE2b-256 35801b92f759e785c74b4db59756a87f9e5d24c9b04e8362fed8d9e33e6d7af8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page