This is demo of a load testing setup based on Yandex Tank (plugin-based test runner) with the following plugins:
The system under test is a Go program that shows a list of books with random latencies up to 200ms.
$ git clone https://github.com/marselester/load-testing.git
$ cd ./load-testing
$ go run ./cmd/server/main.go
$ curl localhost:8000/v1/books
{"books": [{"name": "The Adventures of Tom Sawyer"}]}
Install Yandex Tank
$ virtualenv venv
$ source ./venv/bin/activate
$ pip install https://api.github.com/repos/yandex/yandex-tank/tarball/master
Install Pandora
$ go get github.com/yandex/pandora
Yandex Tank configuration is defined in load.yml.
Test data ammo.json describes the HTTP requests a load generator will send to a Go program.
In this case Pandora will start from sending GET /v1/books
1 request per second and progress to
100 requests per second for duration of 30 seconds.
Start testing:
$ yandex-tank -c load.yml
The results will be available at https://overload.yandex.net
(you'll need to sign in to get an API token and store it in overload-token.txt
).