Solución:
Herramientas de evaluación comparativa y pruebas de carga
Listados en orden alfabético.
ab: lento y de un solo hilo, escrito en C
apib: la mayoría de las características de ApacheBench (ab), también diseñado como un reemplazo más moderno, escrito en C
baloo: pruebas de API HTTP expresivas de extremo a extremo simplificadas, escritas en Go (golang)
baton: prueba de carga HTTP, escrita en Go (golang)
bombardier: herramienta rápida de evaluación comparativa HTTP multiplataforma, escrita en Go (golang)
curl-loader: carga de rendimiento de varios servicios de aplicaciones y generación de tráfico, escrito en C
taladro: aplicación de prueba de carga HTTP inspirada en la sintaxis de Ansible, escrita en Rust
fasthttploader: punto de referencia (un poco ab) con ajuste automático y gráficos basados en la biblioteca fasthttp, escribir en Go (golang)
fortio: biblioteca de pruebas de carga y herramienta de línea de comandos e interfaz de usuario web. Permite especificar una carga establecida de consulta por segundo y registrar histogramas de latencia y otras estadísticas útiles, escribir en Go (golang)
gatling: marco de pruebas de carga de alto rendimiento basado en Scala, Akka y Netty, escribir en Scala
go-wrk: herramienta de evaluación comparativa HTTP basada en espíritu en la excelente herramienta wrk (wg / wrk), escribir en Go (golang)
goad: herramienta de prueba de carga altamente distribuida con AWS Lambda, escritura en Go (golang)
gobench: prueba de carga HTTP / HTTPS y herramienta de evaluación comparativa, escribir en Go (golang)
gohttpbench: herramienta de referencia similar a ab que se ejecuta en una CPU de varios núcleos, escribe en Go (golang)
hey: generador de carga HTTP (S), reemplazo de ApacheBench (ab), anteriormente conocido como rakyll / boom, escrito en Go (golang)
htstress: servicios de bechmarking de alta carga de subprocesos múltiples (> 5K rps), escritos en C / Linux
httperf: configuración difícil, lenta y de un solo subproceso, escrito en C
inundator: programa de inundación HTTP simple y de alto rendimiento, escrito en C / Linux
jmeter: Apache JMeter ™, pura aplicación diseñada para cargar el rendimiento de las pruebas tanto en recursos estáticos como dinámicos, escrita en Java
k6: herramienta de prueba de carga moderna programable en ES6 JS con soporte para HTTP / 1.1, HTTP / 2.0 y WebSocket, escrito en Go (golang)
Locust: herramienta de prueba de carga distribuida y fácil de usar con interfaz de usuario web en tiempo real. Simula un enjambre de usuarios concurrentes, el comportamiento de cada uno de ellos está definido por su código Python. Escrito en Python
mgun: herramienta moderna para probar la carga de servidores HTTP, escrita en Go (golang)
abalanzarse: igualado, pero los resultados fluctúan, a veces es más rápido que htstress, escrito en C
asedio: lento y de un solo hilo, escrito en C
slapper: herramienta de prueba de carga simple con histograma actualizado en tiempo real de los tiempos de solicitud, escrito en Go (golang)
slow_cooker: probador de carga centrado en problemas del ciclo de vida y pruebas de larga ejecución, servicio con una carga predecible y nivel de simultaneidad durante un largo período de tiempo, escrito en Go (golang)
sniper: probador de carga http potente y de alto rendimiento, escrito en Go (golang)
tsung: simula usuarios de estrés para probar la escalabilidad y el rendimiento de las aplicaciones cliente / servidor basadas en IP HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP y servidores Jabber / XMPP, escritos en Erlang
vegeta: biblioteca y herramienta de prueba de carga HTTP, escrita en Go (golang)
weighttp: multiproceso, pero más lento que htstress sin keepalive, escrito en C
wrk: multiproceso, escrito en C / Lua
wrk2: rendimiento constante, variante de grabación de latencia correcta de wrk, escrito en C / Lua
yandex-tank: herramienta de referencia de carga y rendimiento, escrita en Python / C | C ++ | Asm (fantasma)
Las descripciones son de aquí.
He usado wrk y siege, siege es una herramienta realmente fácil de usar, pero no estoy seguro de si puedes probar DELETE o PUT con siege.
Wrk puede usar el script lua provisto para generar solicitudes, por lo que DELETE y PUT no serán un problema. Y wrk es una herramienta que puede dominar el servidor de archivos estáticos NGINX, por lo que creo que es lo suficientemente rápido para las pruebas de carga de uso general.
Nunca he usado boom o Yandex.tank sugerido por @Direvius, básicamente porque wrk es lo suficientemente simple y se adapta a nuestras necesidades. Pero JMeter es demasiado complejo para mí.
Nunca he usado ninguno de estos, pero he escuchado algunas opiniones positivas sobre wrk.
Creo que también debería probar Jmeter, que es muy popular, y tal vez Yandex.tank, que es la herramienta que usamos en nuestro departamento de LT para la mayoría de nuestros servicios web.