FAQ
Last updated
Last updated
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
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.
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:
Correctness:
Replay recorded requests and compare response against recorded response
Maintenance:
Replay requests to update responses
Contract testing to ensure validity of requests and responses
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.
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: