Overview
Thestart command initiates a load test on your specified blockchain endpoint. You can test individual RPC methods or use pre-configured profiles that combine multiple methods with realistic weight distributions.
By default, results are saved to ./results/{profile_or_method_name}/{YYYY-mm-dd_HH-MM-SS}.
Basic Usage
- Test a Single Method
- Test with a Profile
- Web UI Mode
eth_blockNumber method with 50 concurrent users over 12 hours.Arguments
Specify a single RPC method to test (e.g.,
eth_blockNumber, eth_getBalance). When provided, profile options are ignored.Use chainbench list methods to see all available methods.Core Options
The blockchain node endpoint URL to test.
Required for test data initialization. In Web UI mode, you can change the target later, but test data must be compatible with the same chain type.
Target number of concurrent simulated users.
Number of users spawned per second during ramp-up.
Number of worker processes to distribute the load.
Duration of the test. Supports time units:
s (seconds), m (minutes), h (hours).Profile Options
Name of the profile to run. Available profiles can be listed with Supports one level of nesting using dot notation (e.g.,
chainbench list profiles.bsc.general → profile/bsc/general.py).Custom directory containing profiles. Supports up to one level of subdirectories.
Full path to a specific profile locustfile. Overrides
--profile and --profile-dir.Load Pattern Options
Shape of the load pattern. Available shapes: Default is ramp-up: load increases linearly at spawn-rate until target users is reached.Use
step, spike, or custom shapes.chainbench list shapes to see all available shapes.Test Data Options
Size of test data to generate. Larger sizes result in longer generation time.
| Size | Blocks |
|---|---|
| XS | 10 |
| S | 100 |
| M | 1,000 |
| L | 10,000 |
| XL | 100,000 |
Use the latest blocks for test data and run a background process to keep data updated.Recommended for nodes with limited history (e.g., sync modes that only keep the last 128 blocks).
Reference node URL for retrieving test data before the test starts. If not specified, target URL is used.
Starting block number for custom block range. Must be used with
--end-block.Ignored if
--use-latest-blocks is set.Ending block number for custom block range. Must be greater than
--start-block.Execution Mode Options
Run in headless mode without the web UI.Useful for automated testing and remote server execution.
Automatically quit after the test finishes.Recommended for automated testing pipelines.
Host address for the Locust master.
Port for the Locust master.
Batch Request Options
Send requests in batches for JSON-RPC methods.
Number of requests per batch. Only used when
--batch is set.Method Filtering Options
Enable execution of tasks tagged with By default, debug and trace methods are excluded.
debug or trace.Exclude tasks with specific tags. Can be specified multiple times.
Monitoring Options
Add monitors to collect additional metrics during the test. Can be specified multiple times.Available monitors:
sync-lag-monitor- Track node synchronization lag
Monitors currently only work in headless mode.
Send notifications when the test starts and finishes using ntfy.sh.Notifications will be sent to
https://ntfy.sh/my-test-topic.Results Options
Directory where test results are saved.
Custom identifier for the test run.
Database Export Options
Export test data to PostgreSQL with TimescaleDB extension.Requires all PG connection parameters.
Hostname of PostgreSQL instance with TimescaleDB.
Port of PostgreSQL instance.
PostgreSQL username.
PostgreSQL password.
Logging Options
Logging level for test output.
Common Scenarios
Quick Development Test
Production Stress Test
Limited History Node Test
Batch Request Test
Remote Server Test with nohup
Example Output
Related Commands
- chainbench list - View all available methods, profiles, and shapes
- chainbench discover - Discover available methods on an endpoint