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

Uploaded Source

Built Distribution

r2-0.4.2-py3-none-any.whl (12.0 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