How do I report an issue?

We track issues in Github at https://github.com/Stoobly/stoobly-agent/issues. Please provide as much information as possible and we will take a look 😄

Where do I find the latest releases?

pip releases can be found on PyPI.

Docker image releases can be found on Docker Hub.

To currently see the agent code changes, see the Github Releases and their changelogs.

To learn how the contributors publish releases, see our Developer Guide on Releases.

Is this a test framework?

While Stoobly provides similar functionality in respect to running and provide output for tests, our motive is more to provide a centralized storage for HTTP(s) requests from which you can:

  • Search requests

  • Build requests into scenarios

  • Generate endpoint contracts

  • Mock requests

  • Test request and scenarios

At our core we are essentially a hash map where the key is the request components such as:

  • URL, port number, path, headers, query parameters, body

And the value is the recorded request's response components:

  • headers, body, status code

In regards to mocking and testing, we provide the ability to dramatically reduce the need to write and maintain request and response components in test code. Here is how we tackle the core challenges with testing:

  1. Generation:

  2. Correctness:

    • Replay recorded requests and compare response against recorded response

  3. Maintenance:

    • Replay requests to update responses

    • Contract testing to ensure validity of requests and responses

Where do my requests get stored?

The Stoobly agent records and stores requests to your local machine and requests do not leave it. We use an underlying SQLite database file to store data. By default it is located at ~/.stoobly/db/stoobly_agent.sqlite3 for unix systems.

How much of a request is stored?

We store a HTTP request's - URL, port number, path, headers, query parameters, and body

And the HTTP response's - headers, body, and status code

Certain parts of the request may contain sensitive information. For example an access token passed in with a HTTP header might be used for authorization. Another example could be username and password properties being passed in as part of the request body or as form data.

To address this concern, we provide rewrite and filter rules for each part of the request. See the following documentation:

Proxy Settings

Last updated