Boom: Test de rendimiento, alternativa a Apache Benchmark (AB)

Siempre me gustó utilizar AB para probar el rendimiento de una aplicación, es un método sencillo y que arroja resultados en instantes, sin embargo nunca me pareció una solución definitiva, sin embargo no puedo negar que es una pequeña aplicación de gran utilidad.

Una de los problemas que con el que vamos a encontrarnos al utilizar AB es el referido a la compatibilidad con las distintas plataformas, incluso podríamos hablar de algunos problemas referidos a su instalación en algunos entornos, para solucionar estos problemas existe Boom.

Boom es una alternativa a AB, de fácil instalación y que funciona prácticamente en cualquier entorno. Originalmente el proyecto fue escrito en Python, detalle que podía transformarse en una desventaja debido a las dependencias necesarias, razón que provocó que el proyecto se reescriba utilizando Go, eliminando el problema de dependencias original.

herramienta benchmark servidores

La instalación de este proyecto no necesita más que una simple linea:

go get github.com/rakyll/boom

El modo de uso es mediante la linea de comandos y guarda una estrecha relación con AB, por lo que si ya utilizaron este ultimo alguna vez no tendrán inconvenientes en adaptarse a Boom.

Usage: boom [options...] <url>

Options:
  -n    Number of requests to run.
  -c    Number of requests to run concurrently. Total number of requests cannot
        be smaller than the concurency level.
  -q    Rate limit, in seconds (QPS).
  -t    Time limit in seconds. boom will stop after s seconds if specified.

  -m    HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS.
  -h    Custom HTTP headers, name1:value1;name2:value2.
  -d    HTTP request body.
  -T    Content-type, defaults to "text/html".
  -a    Basic authentication, username:password.

  -allow-insecure   Allow bad/expired TLS/SSL certificates.

Y para terminar el resultado:

% boom -n 1000 -c 100 https://google.com
1000 / 1000 ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 100.00 % 

Summary:
  Total:        21.1307 secs.
  Slowest:      2.9959 secs.
  Fastest:      0.9868 secs.
  Average:      2.0827 secs.
  Requests/sec: 47.3246
  Speed index:  Hahahaha

Response time histogram:
  0.987 [1]     |
  1.188 [2]     |
  1.389 [3]     |
  1.590 [18]    |∎∎
  1.790 [85]    |∎∎∎∎∎∎∎∎∎∎∎
  1.991 [244]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  2.192 [284]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  2.393 [304]   |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  2.594 [50]    |∎∎∎∎∎∎
  2.795 [5]     |
  2.996 [4]     |

Latency distribution:
  10% in 1.7607 secs.
  25% in 1.9770 secs.
  50% in 2.0961 secs.
  75% in 2.2385 secs.
  90% in 2.3681 secs.
  95% in 2.4451 secs.
  99% in 2.5393 secs.

Status code distribution:
  [200] 1000 responses

Este proyecto se encuentra liberado bajo licencia Apache 2.0.

Categorizado en: