Skip to content

pree-side/wasp

 
 

Repository files navigation

Wasp

Go Tests

A simple protocol-agnostic load testing tool for Go

Goals

  • 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 with RPS bound load (http, etc.)
  • Be able to perform synthetic load testing for streaming protocols in Go with Instances bound load (ws, etc.)
  • Scalable in k8s without complicated configuration or vendored UI interfaces
  • Non-opinionated reporting, push any data to Loki

Setup

make install_deps

Run example tests with Grafana + Loki

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: dashboard_img

Remove environment:

make stop

Run pyroscope test

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

Tutorial

Check tutorial for more examples

About

A simple protocol-agnostic load testing tool for Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.7%
  • Makefile 1.3%