A simple protocol-agnostic load testing tool for Go
- Easy to reuse any custom client
Gocode - 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
GowithRPS bound load(http, etc.) - Be able to perform synthetic load testing for streaming protocols in
GowithInstances bound load(ws, etc.) - Scalable in
k8swithout complicated configuration or vendored UI interfaces - Non-opinionated reporting, push any data to
Loki
make install_depsmake startInsert 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 dashboardRun some tests:
make test_loki
Open your Grafana dashboard
Basic dashboard:

Remove environment:
make stopmake 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