Load Test Scenario Generator for Contract Calls
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Load Test Scenario Generator for Contract Calls creates comprehensive load test configurations for smart contract performance testing. You provide a contract address, ABI, a list of functions to call with parameters and weights, and load test parameters (duration and concurrency). The tool generates a complete load test scenario including a call distribution table with weighted percentages and a runnable JavaScript load test script using ethers.js. The script performs weighted random calls to your contract functions at the specified concurrency level for the given duration, tracking success and error rates. This is essential for developers who need to test contract performance under load, estimate gas costs, identify bottlenecks, or validate that contracts can handle expected traffic patterns.
HOW TO USE
Enter the contract name and address. Paste the contract ABI as a JSON array. Define calls—one per line—in the format "functionName | params | weight". For example: "totalSupply | | 30" or "transfer | 0x123...,1000000000000000000 | 40". The weight field determines the relative frequency of each call (e.g., a weight of 40 means it will be called approximately 40% of the time if total weight is 100). Set the test duration in seconds and the concurrency level (simultaneous calls). Click "Generate Load Test Scenario." The tool generates a detailed scenario with a call distribution table and a complete JavaScript load test script that you can run with Node.js. Use the copy button to export the scenario.
THE REAL MECHANISM
The tool uses a pure JavaScript template engine that operates entirely client-side. It parses the ABI and validates the function names and parameters. For each call definition, it extracts the function name, parameters, and weight. The tool calculates the percentage distribution for each call based on the weights. It then generates a JavaScript load test script using ethers.js v5. The script includes weighted random selection logic, the contract instance creation, and a main loop that runs for the specified duration with the configured concurrency. The script uses Promise.all to execute concurrent calls and tracks calls made and errors. All processing is done in the browser—no data is sent to external servers.
WHAT IT CANNOT SEE
This tool cannot execute the generated load tests directly—you must run the script yourself. It cannot detect if the contract can handle the generated load without execution. It cannot generate load test scenarios for non-EVM contracts. It cannot simulate real-world network conditions such as network latency, RPC rate limits, or transaction propagation delays. It cannot validate that the generated parameters are safe for the contract—you must ensure test parameters don't cause unintended side effects. The tool does not have built-in RPC rate limiting or retry logic in the generated script.
PLEASE NOTE
Load Test Scenario Generator works for any EVM-compatible contract and does not require a blockchain connection to function, though the network selector is provided for context. It is a configuration and script generation tool for developers, not an execution tool. It reads data only and does not send any information to external servers. The tool is free to use and does not require authentication. For best results, test on a testnet or local chain first and monitor RPC provider rate limits when running load tests on public networks.