Info

Locust - aльтернатива Tsung и JMeter на базе Python для нагрузочного тестирования сервера.

Пресытившись существующими инструментами для измерения производительности и нагрузочного тестирования серверов, недавно для своего проекта я выбрал инструмент с открытым исходным кодом под названием Locust. C его помощью можно получить представление о том, какое количество запросов в секунду (RPS) поддерживает ваш сервер. Согласно официальной документации, Locust — это:

«...простой в использовании распределенный инструмент, предназначенный для нагрузочного тестирования веб-сайтов (или других систем) и определения количества пользователей, с которыми одновременно может работать система».

Идея заключается в том, что во время тестирования сайт подвергается «атаке стаи саранчи» (от англ. locust — саранча). Поведение каждой саранчи (тестового пользователя) определяется вами, а процесс атаки отслеживается с помощью веб-интерфейса в режиме реального времени. Это помогает провести боевые испытания и выявить узкие места в коде, прежде чем допускать реальных пользователей.

Locust полностью основан на событиях, что позволяет поддерживать одновременно тысячи пользователей на одной машине. В отличие от многих других событийно-ориентированных приложений, в нем не используются callback-функции. Вместо этого он использует легковесные процессы через gevent. Каждая саранча, роящаяся на вашем сайте, фактически работает внутри собственного процесса (или гринлета, если быть точным). Это позволяет писать очень выразительные сценарии на Python, не усложняя код callback-функциями.

Installation

#Linux
pip3 install locust

#OR
pip3 install -e git://github.com/locustio/locust.git@master#egg=locust

#Windows Fix
pip install name-of-the-package.whl

#MacOS
/usr/bin/ruby -e "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/master/install>)"
brew install libev
pipx install locust

Untitled

Ussage

locust --help

Введение в Locust: open source инструмент для нагрузочного тестирования на языке Python