Skip to main content

A command-line tool for HTTP tests over RESTful APIs

Project description

https://travis-ci.org/slaily/pyhttptest.svg?branch=master

Pissed about writing test scripts against your RESTFul APIs anytime?

Describe an HTTP Requests test cases in a simplest and widely used format JSON within a file.

Run one command and gain a summary report.

📣

📣 Coverage measuring on Test Cases coming soon

📣

pyhttptest in the command line

Installation

Recommended installation method is to use pip:

$ pip install pyhttptest

Python version 3+ is required.

Usage

$ pyhttptest execute FILE

See also pyhttptest --help.

Examples

Single test case

Create a .json file and define a test case like an example:

FILE: HTTP_GET.json

{
  "name": "TEST: List all users",
  "verb": "GET",
  "endpoint": "users",
  "host": "https://github.com",
  "headers": {
    "Accept-Language": "en-US"
  },
  "query_string": {
    "limit": 5
  }
}

Execute a test case:

$ pyhttptest execute FILE_PATH/HTTP_GET.json

Result:

pyhttptest in the command line

Мultiple test cases

Create a .json file and define a test cases like an example:

FILE: requests.json

[
  {
    "name":"TEST: List all users",
    "verb":"GET",
    "endpoint":"api/v1/users",
    "host":"http://localhost:8085/",
    "headers":{
       "Accept-Language":"en-US"
    },
    "query_string":{
       "limit":1
    }
  },
  {
    "name":"TEST: Add a new user",
    "verb":"POST",
    "endpoint":"api/v1/users",
    "host":"http://localhost:8085/",
    "payload":{
       "username":"pyhttptest",
       "email":"admin@pyhttptest.com"
    }
  },
  {
    "name":"TEST: Modify an existing user",
    "verb":"PUT",
    "endpoint":"api/v1/users/XeEsscGqweEttXsgY",
    "host":"http://localhost:8085/",
    "payload":{
       "username":"pyhttptest"
    }
  },
  {
    "name":"TEST: Delete an existing user",
    "verb":"DELETE",
    "endpoint":"api/v1/users/XeEsscGqweEttXsgY",
    "host":"http://localhost:8085/"
  }
]

Execute a test case:

$ pyhttptest execute FILE_PATH/requests.json

Result:

pyhttptest in the command line

Dependencies

Under the hood, pyhttptest uses these amazing libraries:

  • ijson — Iterative JSON parser with a standard Python iterator interface

  • jsonschema — An implementation of JSON Schema validation for Python

  • Requests — Python HTTP library for humans

  • tabulate — Pretty-print tabular data

  • click — Composable command line interface toolkit

Contributing

See CONTRIBUTING.

Changelog

See CHANGELOG.

Licence

BSD-3-Clause: LICENSE.

Authors

Iliyan Slavov

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

pyhttptest-0.7.tar.gz (11.6 kB view hashes)

Uploaded Source

Built Distribution

pyhttptest-0.7-py3-none-any.whl (15.7 kB view hashes)

Uploaded Python 3

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