Я искал инструменты, которые могут помочь мне выполнить нагрузочное тестирование и бенчмаркинг. Я нашел пары как: https://github.com/wg/wrk, http://www.joedog.org/siege-home/, https://github.com/rakyll/boom. Мне интересно, есть ли у кого-нибудь опыт работы с этими инструментами и есть ли какие-либо отзывы о преимуществах против этих инструментов. Мое нагрузочное напряжение будет включать в себя различные тестовые примеры, используя DELETE, PUT, GET, POST... headers
Ответ 2
Инструменты нагрузочного тестирования и тестирования
Перечислено в алфавитном порядке.
ab: медленный и однопоточный, написанный на C
apib: большинство функций ApacheBench (ab), также разработанных как более современная замена, написано на C
baloo: выразительное сквозное тестирование HTTP API стало проще, написано на Go (golang)
baton: нагрузочное тестирование HTTP, написано на Go (golang)
bombardier: быстрый кроссплатформенный инструмент для тестирования производительности HTTP, написанный на Go (golang)
curl-loader: загрузка производительности различных сервисов приложений и генерация трафика, написанная на C
Drill: приложение для нагрузочного тестирования HTTP, вдохновленное синтаксисом Ansible, написанным на Rust
fasthttploader: бенчмарк (своего рода ab) с автоматической настройкой и графиками на основе библиотеки fasthttp, запись в Go (golang)
fortio: загрузка библиотеки тестирования, инструмента командной строки и веб-интерфейса. Позволяет задавать заданную загрузку запроса в секунду и записывать гистограммы задержки и другую полезную статистику, писать в Go (golang)
gatling: высокопроизводительный фреймворк для нагрузочного тестирования на основе Scala, Akka и Netty, пишите в Scala
go-wrk: инструмент для тестирования производительности HTTP, основанный на духе превосходного инструмента wrk (wg/wrk), пишите на Go (golang)
goad: AWS Lambda, высокораспределенный инструмент для нагрузочного тестирования, пишите на Go (golang)
gobench: инструмент для нагрузочного тестирования и тестирования производительности HTTP/HTTPS, пишите на Go (golang)
gohttpbench: ab-like инструмент для тестирования производительности, запущенный на многоядерном процессоре, пишите на Go (golang)
эй: генератор нагрузки HTTP (S), замена ApacheBench (ab), ранее известная как rakyll/boom, написанная на Go (golang)
htstress: многопоточные сервисы бичмаркинга с высокой нагрузкой (> 5K rps), написанные на C/Linux
httperf: сложная конфигурация, медленная и однопоточная, написана на C
Inundator: простая и высокопроизводительная программа HTTP-потока, написанная на C/Linux
jmeter: Apache JMeter ™, чистое приложение, предназначенное для загрузки производительности теста как на статических, так и на динамических ресурсах, написанное на Java
k6: современный инструмент нагрузочного тестирования, написанный на ES6 JS с поддержкой HTTP/1.1, HTTP/2.0 и WebSocket, написанный на Go (golang)
locust: простой в использовании инструмент для распределенного нагрузочного тестирования с веб-интерфейсом в реальном времени. Имитирует рой одновременных пользователей, поведение каждого из них определяется вашим кодом Python. Написано на Python
mgun: современный инструмент для нагрузочного тестирования HTTP-серверов, написанный на Go (golang)
pounce: выравнивается, но результаты колеблются, иногда быстрее, чем httress, написанный на C
Осада: медленная и однопоточная, написано на C
slapper: простой инструмент для нагрузочного тестирования с обновляемой в реальном времени гистограммой времени запросов, написанный на Go (golang)
slow_cooker: тестер нагрузки, ориентированный на проблемы жизненного цикла и длительные тесты, сервис с предсказуемой нагрузкой и уровнем параллелизма в течение длительного периода времени, написанный на Go (golang)
sniper: мощный и высокопроизводительный http-тестер нагрузки, написанный на Go (golang)
tsung: имитировать стресс-пользователей, чтобы протестировать масштабируемость и производительность клиент-серверных приложений на базе IP-серверов HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP и Jabber/XMPP, написанных на Erlang.
vegeta: инструмент для нагрузочного тестирования HTTP и библиотека, написанная на Go (golang)
weighttp: многопоточный, но медленнее, чем httress без keepalive, написанный на C
wrk: многопоточный, написанный на C/Lua
wrk2: постоянная пропускная способность, правильный вариант записи wrk с задержкой, написанный на C/Lua
yandex-tank: инструмент для измерения нагрузки и производительности, написанный на Python/C | C++ | Asm (фантом)
Описания здесь.