Skip to main content

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, and the backend 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cicadad-1.5.0.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

cicadad-1.5.0-py3-none-any.whl (57.0 kB view details)

Uploaded Python 3

File details

Details for the file cicadad-1.5.0.tar.gz.

File metadata

  • Download URL: cicadad-1.5.0.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for cicadad-1.5.0.tar.gz
Algorithm Hash digest
SHA256 9633d8e19a7abd7ab924879e271a6cb9109a60ed2649e72b53090c1d826aceeb
MD5 0f503bbb079c5bc2817e5417cc0027c7
BLAKE2b-256 4b8a2ecae5f485260e07286d336a7200fe25544a843d9d032a548223eda1c019

See more details on using hashes here.

File details

Details for the file cicadad-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: cicadad-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 57.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.11

File hashes

Hashes for cicadad-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 515e822d9dacbd088b2d48da2142afa7d439459c8e657499d5975ba939c3db52
MD5 36a637a04955b7c46a5033209aed3bb5
BLAKE2b-256 6a37d5253f4d86c9e84c0b176e5675bb1367ab4bd0b7ca80909355dc93ed3355

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