A simple protocol-agnostic load testing tool for Go
- Easy to reuse any custom client
Go
code - Easy to grasp
- Have slim codebase (500-1k loc)
- Have predictable performance footprint when tested with protocol mocks
- Be able to perform synthetic load testing for request-based protocols in
Go
withRPS bound load
(http, etc.) - Be able to perform synthetic load testing for streaming protocols in
Go
withInstances bound load
(ws, etc.) - Scalable in
k8s
without complicated configuration or vendored UI interfaces - Non-opinionated reporting, push any data to
Loki
make install_deps
make start
Insert GRAFANA_TOKEN
created in previous command
export LOKI_URL=http://localhost:3030/loki/api/v1/push
export GRAFANA_URL=http://localhost:3000
export GRAFANA_TOKEN=...
export DATA_SOURCE_NAME=Loki
export DASHBOARD_FOLDER=LoadTests
export WASP_LOG_LEVEL=info
make dashboard
Run some tests:
make test_loki
Open your Grafana dashboard
Basic dashboard:
Remove environment:
make stop
make pyro_start
make test_pyro
make pyro_stop
Open pyroscope
You can also use trace.out
in the root folder with Go
default tracing UI
Check tutorial for more examples