Library for running distributed Cicada tests
Project description
cicada-distributed
Cicada Distributed is a framework with the goal of making integration, load, and stress tests less expensive to build. Cicada is designed to manage vast groups of users to test your services while making tests easier to build and understand. To get started, install Cicada through pip:
pip install cicadad
You will also need to install Docker in order to use Cicada locally. To install Docker, visit https://docs.docker.com/get-docker/.
Example
Before running tests, you must start redis
, datastore-client
, and the container-service
containers. To start the cluster, run:
cicada-distributed start-cluster
To create a simple test, create a directory and initialize the test scripts:
mkdir example-tests
cicada-distributed init ./example-tests
You should see a couple of files:
- example-tests
- test.py
- Dockerfile
Inside the test.py
, there will be a basic test:
from cicadad.core.decorators import scenario
from cicadad.core.engine import Engine
engine = Engine()
@scenario(engine)
def my_first_test(context):
# Results of previously run scenarios get passed in as context
# Write the body of your test here
assert 2 + 2 == 4
# Anything returned gets saved as a user output
return "Passed!"
if __name__ == "__main__":
engine.start()
Next, run the test:
cicada-distributed run
Cicada will build an image for the test and start a test runner. You should see the test runner collect the scenario and successfully complete.
Finally, stop the cluster:
cicada-distributed stop-cluster
Documentation
Documentation is available at https://cicadatesting.github.io/cicada-distributed-docs/
Demos are available at https://github.com/cicadatesting/cicada-distributed-demos
Help
If you have a question, please post it on Stack Overflow with the
cicada-distribtued
tag:
https://stackoverflow.com/questions/tagged/cicada-distributed.
Chat
For quick questions, please feel free to post them on the Discord server.
Bugs
To report a bug, add it to the project's GitHub issue tracker.
License
Copyright Jeremy Herzog, 2021.
Cicada Distributed uses the Apache 2.0 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cicadad-1.4.1.tar.gz
.
File metadata
- Download URL: cicadad-1.4.1.tar.gz
- Upload date:
- Size: 39.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d03006d750e7ea52745009c69b6eb0091c05fe8c2e0c9bb59b85b94f1f9fdac9 |
|
MD5 | 60782e889851fdb1aa24f6f9373bd375 |
|
BLAKE2b-256 | aa3778da5391b7fe95b0f9c8cf50a5b8495a694195caa4aaacfabe9a15663168 |
File details
Details for the file cicadad-1.4.1-py3-none-any.whl
.
File metadata
- Download URL: cicadad-1.4.1-py3-none-any.whl
- Upload date:
- Size: 52.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01e793fe292761c58e5d15facdf4565432aacc4bf41481ea80944bf38dc58c1f |
|
MD5 | 0ac8ef0ff3789d917d38dbee13696471 |
|
BLAKE2b-256 | c8b11cae49354ad9f21dab66cd3a62ada4a78615e20423e0fe2d8e9943e2471c |