Apache JMeter
— написан на Java
— можно запускать в GUI и CLI режимах
— скрипты пишутся на Groovy + поддерживаются другие языки
— можно запускать в распределённом режиме — инструкция.
Gatling
— написан на Scala + Java
— после прогона генерирует красивый отчёт с результатами и графиками
— скрипты пишутся на Scala, Java или Kotlin
— в OpenSource версии отсутствует кластерный режим (но есть
— за счёт использования Netty и Akka один экземпляр Gatling позволяет выдавать очень высокий RPS (100k RPS+).
Yandex Tank
— написан на Python
— поддерживает разные генераторы нагрузки:
* Pandora (Go)
* Phantom (стандартный генератор, конфиг описывается в YAML, а запросы = патроны в отдельном файлике)
* JMeter (можно использовать JMeter в качестве генератора нагрузки)
— чтобы было удобно работать с результатами тестирования, можно их выгрузить, например, в InfluxDB
— Yandex Tank — это скорее не отдельный инструмент тестирования, а целая платформа (плагины для генераторов нагрузки, выгрузка результатов).
K6
— написан на Go
— скрипты на JavaScript
— можно гонять распределённые тесты, используя Kubernetes — инструкция.
— как и в большинстве инструментов, по умолчанию результаты выдаются в текстовом виде в stdout, но можно настроить выгрузку метрик.
Locust
— написан на Python
— скрипты на Python
— по определению (locust — с англ. саранча) поддерживает распределённое тестирование.
Прочие инструменты
— Siege (CLI benchmarking tool)
— ab (CLI benchmarking tool)
— Wrk (CLI benchmarking tool)
— Boomer (load generator для Locust).
#подборка #тестирование #jmeter #gatling #highload #java #python