Хочу напомнить про одну из популярных и удобных систем для нагрузочных тестирований для сайтов — Yandex.Tank. Она написана лет 10 назад и с тех пор особо не менялась, хотя в репозитории видна активность. За проектом присматривают и поддерживают в актуальном состоянии.
Она удобна в первую очередь тем, что есть интеграция с бесплатным сервисом overload.yandex.net, куда Yandex.Tank автоматически загружает результаты. Для этого нужно там зарегистрироваться и получить токен. А дальше нарисовать небольшой конфиг для тестирования:
overload: enabled: true package: yandextank.plugins.DataUploader token_file: "token.txt"phantom: address: news.mail.ru:443 header_http: "1.1" headers: - "[Host: news.mail.ru]" - "[Connection: close]" uris: - / - /economics/ load_profile: load_type: rps schedule: line(5, 10, 1m) ssl: trueautostop: autostop: - http(5xx,10%,5s)console: enabled: truetelegraf: enabled: false
И запустить тест:
# docker run --rm -v ~/yandex.tank:/var/loadtest \-it yandex/yandex-tank
В процессе тестирования получите ссылку вида https://overload.yandex.net/589382, по которой можно наблюдать ход тестирования в режиме реального времени, либо изучать его результаты потом. Простую статистику можно наблюдать в консоли по ходу теста.
Yandex Tank продвинутый инструмент, которые поддерживает разнообразные схемы запросов, различные настройки нагрузки и т.д. В качестве генераторов нагрузки может использовать Phantom, Pandora, BFG (написаны самим Яндексом для него), либо известный Jmeter. В качестве внешних сервисов для загрузки артефактов, помимо Yandex.Overload можно использовать InfluxDB.
Все модули, настройки, возможности и примеры использования описаны в документации. Я когда-то давно писал статью с примером запуска Yandex.Tank. Она полностью актуальна, можно пользоваться.
Аналоги Yandex.Tank:
◽️ artillery.io
◽️ k6
◽️ Locust
◽️ Taurus
⇨ Исходники / Документация / Визуализация
#нагрузочное_тестирование