Skip to main content

Python SDK for in-process load execution, traffic correlation, and reporting.

Project description

LoadStrike SDK for Python

LoadStrike is a developer-first load testing SDK for Python services, jobs, and automated test suites. Use it to describe real workflows in Python, execute them in-process, and collect structured reports from the same codebase that owns the system under test.

What This SDK Is For

  • Author scenario-based load tests in Python.
  • Generate safe starter scenarios from captured HAR, OpenTelemetry trace JSON, browser recordings, or message pairs with Trace-to-test Autopilot.
  • Model transaction flows across HTTP and event-driven systems.
  • Apply load simulations, thresholds, and custom metrics during execution.
  • Split a single load profile across weighted scenario mixes.
  • Generate local reports and, on Enterprise, forward results to supported reporting sinks.

Built-in transport coverage includes HTTP, Kafka, RabbitMQ, NATS, Redis Streams, Azure Event Hubs, Push Diffusion, and delegate-based custom streams. Local report output supports HTML, Markdown, TXT, and CSV, and Enterprise can publish to InfluxDB, TimescaleDB, Grafana Loki, Datadog, Splunk HEC, OpenTelemetry Collector, and the expanded built-in sink family.

Requirements

  • Python 3.9 or later

Install

pip install loadstrike

Quick Start

from loadstrike_sdk import (
    LoadStrikeResponse,
    LoadStrikeRunner,
    LoadStrikeScenario,
    LoadStrikeSimulation,
    LoadStrikeStep,
)


def run_orders(context):
    return LoadStrikeStep.run(
        "publish-order",
        context,
        lambda: LoadStrikeResponse.ok("200"),
    ).as_reply()


scenario = (
    LoadStrikeScenario.create("orders", run_orders)
    .with_load_simulations(LoadStrikeSimulation.inject(10, 1, 20))
)

result = (
    LoadStrikeRunner.register_scenarios(scenario)
    .with_runner_key("rkl_your_runner_key")
    .run()
)

run() returns the detailed run result, including generated report files, scenario statistics, metrics, and sink status.

Traffic Mixes

Use LoadStrikeTrafficMix on Pro and Enterprise plans when one total load profile should be distributed across multiple scenario lanes. For example, a 1000 requests-per-second profile with scenario weights of 60, 30, and 10 sends roughly 600 requests per second to the first scenario, 300 to the second, and 100 to the third.

Each lane is still a normal scenario with its own named steps, thresholds, reports, and portal results. Register the mix with LoadStrikeRunner.register_traffic_mix(...) or add it to a runner with .add_traffic_mix(...).

Trace-To-Test Autopilot

Use LoadStrikeAutopilot.generate(...) to infer a starter plan from a captured artifact. Set RunnerKey on the Autopilot options so generation can validate the Trace-To-Test Autopilot entitlement. Check result.Readiness and result.ReadinessFailures first; call result.build_scenario() only when it is LoadStrikeAutopilotReadiness.Ready, then execute the scenario through the normal runner with a valid RunnerKey.

Use SecretBindings to map redaction locations such as header:Authorization or body:$.client_secret to environment variables, TrackingSelector when the selector cannot be inferred, and EndpointBindings, AllowedReplayHosts, or BaseUrlRewrite when a replay target must be bound. Secret values are resolved when the generated scenario runs; they are not written into the generated plan. Any gate satisfied by user setup is omitted from ReadinessFailures.

Runner Keys

Runnable workloads require a RunnerKey. Supply it with .with_runner_key(...) or through your application configuration before calling run().

Documentation

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

loadstrike-1.0.30001.tar.gz (598.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

loadstrike-1.0.30001-py3-none-any.whl (602.5 kB view details)

Uploaded Python 3

File details

Details for the file loadstrike-1.0.30001.tar.gz.

File metadata

  • Download URL: loadstrike-1.0.30001.tar.gz
  • Upload date:
  • Size: 598.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for loadstrike-1.0.30001.tar.gz
Algorithm Hash digest
SHA256 ccaaeadfe212cf9d8848478a2a2c56b6e958c89e364d793e22a3065895b84b43
MD5 31ca6ee4eea176640768dba65903481e
BLAKE2b-256 413567fa54611895c6e4f2ee052040c4f6ace2a7fac112a4a942101f6f33b2ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for loadstrike-1.0.30001.tar.gz:

Publisher: main-delivery.yml on Meticulis/LoadStrike

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loadstrike-1.0.30001-py3-none-any.whl.

File metadata

  • Download URL: loadstrike-1.0.30001-py3-none-any.whl
  • Upload date:
  • Size: 602.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for loadstrike-1.0.30001-py3-none-any.whl
Algorithm Hash digest
SHA256 e794ffb89ca95aa15ebbcdc2dac28b11c5e895afae2808b676cae553a0265a90
MD5 bae4682c7fa7fcdc55044adfcdc261a6
BLAKE2b-256 ca0e3c732ea28566ff3455f5110aa6a536e8da1701b3df28c7d11a89d6f92aa7

See more details on using hashes here.

Provenance

The following attestation bundles were made for loadstrike-1.0.30001-py3-none-any.whl:

Publisher: main-delivery.yml on Meticulis/LoadStrike

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page