Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

CLI for loadtesting the sending of JSON-RPC transaction scenarios

License

Notifications You must be signed in to change notification settings

sei-protocol/sei-load

Repository files navigation

sei-load

Tests

A load testing tool for Sei Chain that generates transactions and measures performance.

Quick Start

1. Build

make build

2. Create Config

cp profiles/local.json my-config.json

Edit my-config.json:

{
 "endpoints": ["http://localhost:8545"],
 "chainId": 713714,
 "scenarios": [
 {"name": "EVMTransfer", "weight": 100}
 ],
 "accounts": {
 "count": 100,
 "newAccountRate": 0.1
 },
 "settings": {
 "workers": 5,
 "tps": 100,
 "statsInterval": "10s",
 "bufferSize": 1000,
 "trackUserLatency": true
 }
}

3. Run

./seiload --config my-config.json

Command Line Options

Flag Default Description
--config, -c Config file path (required)
--workers, -w 1 Workers per endpoint
--tps, -t 0 Transactions per second (0 = unlimited)
--stats-interval, -s 10s Stats logging interval
--buffer-size, -b 1000 Buffer size per worker
--dry-run false Simulate without sending
--debug false Log each transaction
--track-receipts false Track transaction receipts
--track-blocks false Track block statistics
--track-user-latency false Track user latency metrics
--prewarm false Prewarm accounts before test

Examples

Basic Load Test

./seiload --config my-config.json --workers 5 --tps 100

High Throughput Test

./seiload --config my-config.json --workers 20 --buffer-size 2000

Debug Mode

./seiload --config my-config.json --debug --dry-run

With Receipt Tracking

./seiload --config my-config.json --track-receipts --track-blocks

User Latency Monitoring

./seiload --config my-config.json --track-user-latency --stats-interval 5s

Configuration

Basic Structure

{
 "endpoints": ["http://localhost:8545"],
 "chainId": 713714,
 "scenarios": [...],
 "accounts": {...},
 "settings": {...}
}

Scenarios

"scenarios": [
 {"name": "EVMTransfer", "weight": 50},
 {"name": "ERC20", "weight": 30},
 {"name": "ERC721", "weight": 20}
]

Account Management

"accounts": {
 "count": 100,
 "newAccountRate": 0.1
}

Settings

"settings": {
 "workers": 5,
 "tps": 100,
 "statsInterval": "10s",
 "bufferSize": 1000,
 "trackUserLatency": true
}

Settings Precedence: CLI flags > Config file settings > Default values

Available settings:

  • workers: Number of workers per endpoint
  • tps: Transactions per second (0 = unlimited)
  • statsInterval: Stats logging interval (e.g., "10s", "5m")
  • bufferSize: Buffer size per worker
  • dryRun: Simulate without sending transactions
  • debug: Enable debug logging
  • trackReceipts: Track transaction receipts
  • trackBlocks: Track block statistics
  • trackUserLatency: Track user latency metrics
  • prewarm: Prewarm accounts before test

Available Scenarios

  • EVMTransfer: Simple ETH transfers
  • ERC20: ERC20 token operations
  • ERC20Noop: ERC20 no-op transactions
  • ERC20Conflict: ERC20 conflicting transactions
  • ERC721: NFT operations

Output

Standard Metrics

throughput tps=133.00, txs=1330, latency(avg=8ms p50=5ms p99=27ms max=494ms)

User Latency (with --track-user-latency)

user latency height=5191 txs=32 min=1s p50=2s max=5s

Block Stats (with --track-blocks)

blocks height=5191 time(p50=2s p99=5s max=8s) gas(p50=21000 p99=50000 max=100000)

Development

Build

make build

Test

make test

Lint

make lint

Clean

make clean

Troubleshooting

Connection Issues

  • Check endpoint URLs in config
  • Verify network connectivity
  • Try --dry-run to test config

Low Performance

  • Increase --workers
  • Increase --buffer-size

Memory Issues

  • Reduce --buffer-size
  • Reduce worker count
  • Disable receipt tracking

About

CLI for loadtesting the sending of JSON-RPC transaction scenarios

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors 4

AltStyle によって変換されたページ (->オリジナル) /