← All projects2022 / Blockchain · Performance engineering · Open source

xk6 Ethereum

A k6 extension for performance testing EVM-compatible blockchains and smart contracts.

Abstract systems diagram for xk6 Ethereum

The brief

Conventional load-testing tools understand HTTP requests, but blockchain performance depends on protocol-specific behavior: gas prices, nonces, transaction submission, mining, receipts, contract calls, and changing chain state. Testing an EVM network effectively requires those concepts to be native to the workload.

The approach

xk6 Ethereum extends k6 with a JavaScript API backed by a Go Ethereum client. Test scenarios can query balances and blocks, estimate gas, send transactions, wait for receipts, deploy contracts, and call existing contracts without rebuilding that protocol layer for every benchmark.

The extension also exposes blockchain-specific measurements alongside k6’s standard output, including request duration, mined transactions per second, chain progress, and time to mine. Included Grafana and InfluxDB configuration makes local benchmark runs observable from the first test.

The result

An MIT-licensed toolkit for expressing reproducible Ethereum load scenarios in JavaScript while retaining k6’s execution model and reporting ecosystem. Teams can exercise EVM nodes and contracts with workloads that describe real blockchain activity rather than generic transport traffic.

View the source on GitHub