Яндекс.танк - это внутреняя разработка яндекса, которая наконец-то вышла в свет.
Это консольный инструмент, пока не имеющий графического интерфейса, но дающий довольно полную картину в этой самой консоли.
Сам проект и документация находится на github'е: https://github.com/yandex-load/yandex-tank
В кратце возможности:
Можно нагружать одну страницу или сразу список урлов (которые будут запрашиваться примерно в одинаковых соотношениях).
А можно самому составить список запросов со своими заголовками. Например, можно реализовать нагрузку от запросов от анонимных пользователей и залогиненных. Через скрипт (php, python, bash, etc) залогиниться на сайте и получить нужные куки. Сгенерировать в нужном формате данные для танка и запустить тест.
Танк позволяет создать 3 вида нагрузки:
- Постоянная - указывается количество запросов и время
- Линейный рост - указывается начальное и конечное значение и время
- Рост шагами - указывается начальное и конечное значение, шаг увеличения нагрузки и время.
Причём эти виды нагрузки можно комбинировать в одном тесте.
Особенно хочется отметить простоту и понятность синтаксиса.
- Подогреваем кэш load = const(1, 10s)
- Линейно увеличиваем нагрузку с одного запроса в секунду до 10 в течение 2 минут load = line(1, 10, 2m)
- Начинаем нагружать 10 запросами в секунду в течение 1 минуты, потом увеличиваем на 5 запросов и так до 40. Т.е. на каждый шаг будет затрачено по минут load = line(10, 40, 5, 1m)
- Указываем нагружаемых хост, только ip (!) address = 192.168.100.254:80
- Посылаемые заголовки header = [Host: test.server] header = [Connection: close] header_http = 1.1
- Нагружаемые страницы uri = / uri = /another_page/
Вот что случается, когда сервер не справляется:
Комментариев нет:
Отправить комментарий