Skip to main content

Cilada

É uma cilada, Bino! 🚚

Cilada is a Python 3.11+ CLI that reads an online OpenAPI contract, generates request cases, and runs load tests with Locust.

Installation

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -e ".[dev]"

Create a commented configuration template:

cilada config init

The command never overwrites an existing file unless --force is supplied. Use --path path/.cilada.toml to create the file elsewhere. Keep secrets out of version control and reference environment variables such as Authorization = "Bearer ${CILADA_TOKEN}".

Usage

The .cilada.toml configuration file is optional. All settings can be passed directly via CLI arguments or defined in .cilada.toml.

# Run using .cilada.toml (if present)
cilada run

# Run without configuration file by providing --openapi-url via CLI:
cilada run --openapi-url https://sandbox.example.com/openapi.json

# Provide full configuration via CLI arguments:
cilada run \
  --openapi-url https://api.example.com/openapi.json \
  --users 20 \
  --spawn-rate 5.0 \
  --run-time 2m \
  -H "Authorization: Bearer mytoken" \
  -H "X-Tenant: mytenant" \
  -m GET -m POST \
  --cases-per-operation 3 \
  --timeout-seconds 15

# Validate contract and list cases without load:
cilada run --dry-run --openapi-url https://sandbox.example.com/openapi.json

# Non-interactive run (bypasses all interactive prompts and confirmations):
cilada run --non-interactive --openapi-url https://sandbox.example.com/openapi.json

Configuration Precedence

Order of precedence: CLI Arguments > .cilada.toml file > Standard Defaults.

All CLI arguments available for cilada run:

  • API: --openapi-url (-u), --base-url (-b), --header (-H), --verify-tls/--no-verify-tls, --timeout-seconds
  • Test: --enabled-methods (-m), --include-paths, --exclude-paths, --cases-per-operation, --failure-status-classes
  • Locust: --users, --spawn-rate, --run-time, --headless/--no-headless, --web-host, --web-port, --csv-prefix, --html-report

Interactive runs request a missing OpenAPI URL and required headers if not supplied via CLI or TOML file. Sensitive header names (Authorization, token, and key) use hidden input. Declining a required header triggers an explicit confirmation; accepted runs omit that header from requests. With --non-interactive, zero interaction is performed (all prompts and confirmations are bypassed).

Progress and results

The CLI displays three setup steps. During execution, Locust shows its native statistics table. Its Name column uses the shortest unique URL suffix and its Type column shows the HTTP method.

The final summary reports request and failure counts, global minimum/average/ maximum response times, totals by HTTP method, and metrics by HTTP status code. Each status code includes request count and minimum, average, and maximum response times. Requests that fail before receiving an HTTP response are listed as no response.

Case generation

  • test.enabled_methods / -m controls executed methods.
  • include_paths and exclude_paths accept glob patterns such as /patients/*.
  • cases_per_operation / --cases-per-operation produces variants from examples, defaults, enums, optional fields, and boundary values.
  • test.failure_status_classes / --failure-status-classes defaults to [5]; use [4, 5] to also mark 4xx responses as failures.

Safety

The default methods are GET, HEAD, and OPTIONS. Enable POST, PUT, PATCH, or DELETE only in an isolated, authorized environment with disposable data.

Quality

make unit-test
make lint
make typecheck

Run make install to install development dependencies, make build to create distribution artifacts, and make format (or make formatter) to format the project.

Deliberate limitations

  • JSON Schema $ref is not expanded.
  • Only application/json request bodies are generated.
  • OAuth2 token refresh requires a future hook; static headers work for valid tokens.

Portuguese documentation is available in README_PT.md.

Release files for cilada 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cilada 1.1.0
File Size Uploaded
cilada-1.1.0.tar.gz 33.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cilada 1.1.0
File Interpreter ABI Platform
cilada-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 52.7 kB

Release files / cilada-1.1.0.tar.gz

Download URL cilada-1.1.0.tar.gz
Size 33.3 kB
Tags Source
SHA-256 checksum
How to use checksums
74a0f14e1cdd1708f979a2e17fbd6ffad2096d45459cec793ebdef03773a8631
BLAKE2b-256 checksum
How to use checksums
9ff17f1d19b60675d36710d264ad67e69f0b01e4b2137f9d5251d2bf1248309d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release files / cilada-1.1.0-py3-none-any.whl

Download URL cilada-1.1.0-py3-none-any.whl
Size 19.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
95664d9553af972f49a2b0928145ad34d8ab32bc01bd372ebbe443f3eb798125
BLAKE2b-256 checksum
How to use checksums
dc5510dc6ae826ae8f8bbdd3d1cd95c72de0fb00f7e6193d97e1b342eaf7a62a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page