/yandex-tank

Load and performance benchmark tool

Primary LanguagePythonGNU Lesser General Public License v2.1LGPL-2.1

Yandex Tank ![Gitter](https://badges.gitter.im/Join Chat.svg) Gittask

Build Status

Quantiles chart example

Description

Yandex.Tank is an extendable open source load testing tool for advanced linux users which is especially good as a part of automated load testing suit.

Main features

  • different load generators supported:
    • Evgeniy Mamchits' phantom is a very fast (100 000+ RPS) shooter written in C++ (default)
    • JMeter is an extendable and widely known one
    • BFG is an experimental Python-based generator that allows you to write your own shooter function (included)
  • customizable reports in .html with pretty interactive charts based on highcharts library
  • graphite support
  • several ammo formats supported like plain url list or access.log
  • test autostop plugin
  • customizable and extendable monitoring that works over SSH

Install from PyPI

You will need some packages that are required for building different python libraries:

libxml2-dev libxslt1-dev python-dev zlib1g-dev

You will also need a GNU make for building them. In Ubuntu you can install a build-essential package. You should also install pip if you don't have it. Full command for Ubuntu looks like this:

sudo apt-get install python-pip build-essential libxml2-dev libxslt1-dev python-dev zlib1g-dev

You can do similar thing for your distribution. After you've installed all the packages, it is easy to install the Tank itself:

sudo pip install yandextank

Remember that if you want to use phantom as a load generator you should install it separately. On Ubuntu you can do that by adding our PPA and installing phantom and phantom-ssl packages. On other distros you will maybe need to build it from sources.

sudo add-apt-repository ppa:yandex-load/main && sudo apt-get update
sudo apt-get install phantom phantom-ssl

Report plugin is a distinct project. You can found it here.

Get help

Documentation at ReadTheDocs

Ask your questions at Stackoverflow, use "load-testing" + "yandex" tags.

See also

Evgeniy Mamchits' phantom - Phantom scalable IO Engine

Andrey Pohilko's loadosophia - service for storing and analysing performance test results

Jenkins - an extendable open source continuous integration server that may be used to automate test execution.

Graphite - an enterprise-scale monitoring tool, use it to store your test results and render graphs.

Yandex.Metrics counter