test: add the loadtime tool (Backport #9342) (#9358)

* test: add the loadtime tool (#9342)

This pull request adds the loadtime tool. This tool leverages the tm-load-test framework. Using the framework means that the only real logic that needs to be written is the logic for Tx generation. The framework does the rest.

The tool writes a set of metadata into the transaction, including the current transaction rate, number of connections, specified size of the transaction, and the current time.

* lint
This commit is contained in:
William Banfield
2022-09-02 13:04:29 -04:00
committed by GitHub
parent 29c5a062d2
commit f573d3d2a6
11 changed files with 680 additions and 14 deletions
+32
View File
@@ -0,0 +1,32 @@
# loadtime
This directory contains `loadtime`, a tool for generating transaction load against Tendermint.
`loadtime` generates transactions that contain the timestamp corresponding to when they were generated
as well as additional metadata to track the variables used when generating the load.
## Building loadtime
The `Makefile` contains a target for building the `loadtime` tool.
The following command will build the tool and place the resulting binary in `./build/loadtime`.
```bash
make build
```
## Use
`loadtime` leverages the [tm-load-test](https://github.com/informalsystems/tm-load-test)
framework. As a result, all flags and options specified on the `tm-load-test` apply to
`loadtime`.
Below is a basic invocation for generating load against a Tendermint websocket running
on `localhost:25567`
```bash
loadtime \
-c 1 -T 10 -r 1000 -s 1024 \
--broadcast-tx-method sync \
--endpoints ws://localhost:26657/websocket
```