Skip to main content

Software 'r2' is designed to record and replay responses (to mock) from REST API services

Project description

r2 (Record2Replay)

Record2Replay is simple tool to record your requests on specific target and later replay it to automate your daily tasks

Note: This version is still Work In Progress. Record/Replay function should work with no problems, but it is lack of features.

TLDR;

# install
pip install r2

# record responses from another service
r2 record http://api.plos.org

# or record on the custom name 'api_plos'
r2 record http://api.plos.org --package api_plos

Go to your browser and type:

localhost:5000/search?q=title:DNA

in your home directory, all response will be saved at

~/.r2/packages/default/*

# to replay packages 
r2 replay

# or to replay a custom package 'api_plos'
r2 replay --package api_plos

TODO

Note: This is partly implemented with 0.2 version.

  • Implement an option to parse arguments ex http://127.0.0.1:5000/search?q=title:DNA. Actual version will pass everything on the right side of the ? and save a file under search.

  • Add a support for more than one package

Installation

You can install a r2 software using a python package manager or build it from source code:

from pip

r2 is available thru pip, to install type pip install r2

from source

Go into src directory of source, and type python setup.py sdist bdist_wheel && cd dist && pip install r2*.whl

Replay files

Replay files store base information about the response, from the service.

Actual support:

  • json response

Future upgrade:

  • raw response
  • additional status codes
  • additional information from headers

Logs files

All logs are stored at ~/.r2/logs directory with filenames r2_record_2020_08_04T18_06_02_050068 where (r2_[action_type]_[isoformat_time]).

Format change v0.1 to v0.2

Since version v0.2, r2 presents a new format to store response information from the services. Before v0.2 all response was stored as a raw text in the file. Now, the Response is packed:

Example:

  • Before:
{"test": "test_body"}
  • Now:
{
"data_id": "test\endpoint", 
"actions": [
    {"arguments": {}, 
     "response": {
         "test": "test_body"}
     }]
}

This approach allow us to store different information for whole range of arguments deliver thru the URL.

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

r2-0.4.2.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

r2-0.4.2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file r2-0.4.2.tar.gz.

File metadata

  • Download URL: r2-0.4.2.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for r2-0.4.2.tar.gz
Algorithm Hash digest
SHA256 f52ccc686be66d561a7d312132c9188aa38e4a4635095b3ccf0f2f7ed221f814
MD5 4f09de58c9cfd3a0e015156e251ba1c8
BLAKE2b-256 e7e4fcb8ced781ec1995f33f1d0fc976e7d39dee3d7eb385b05806e4f85f28b2

See more details on using hashes here.

File details

Details for the file r2-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: r2-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2

File hashes

Hashes for r2-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e14227bee142e99e5eef2215377e178a6c8754fa8e69078985d4fb1652df64d2
MD5 de23418c3542c4a361a470e7e5b7e572
BLAKE2b-256 a5e1c2070958149010f7f0f0b226f5c3bd6693f3283fc9d0fed96d0ece651efa

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