Logotipo de Bitdoze

Descubre el poder de oha: pruebas de rendimiento web de forma sencilla

Aprende a usar oha para realizar pruebas de carga en tu sitio web. Guía sencilla con ejemplos prácticos para medir el rendimiento, la capacidad de procesamiento y los tiempos de respuesta de tu sitio.

Dragos

8 min de lectura

Descubre el poder de oha: pruebas de rendimiento web de forma sencilla

El rendimiento de un sitio web es crucial para la experiencia del usuario y el SEO. En esta guía aprenderás a usar oha, una herramienta ligera de pruebas de carga HTTP, para medir el rendimiento de tu sitio web bajo carga. Tanto si eres desarrollador como propietario de un sitio, estas pruebas te ayudarán a entender las capacidades de tu web.

¿Qué es oha?

oha

oha (おはよう) es:

  • Una herramienta moderna y ligera de pruebas de carga HTTP
  • Escrita en Rust para un rendimiento óptimo
  • Perfecta para pruebas rápidas de rendimiento web
  • Con visualización de resultados en tiempo real

Ventajas principales:

Característica Ventaja
Velocidad Ejecución rápida con un uso mínimo de recursos
Simplicidad Funciona con un solo comando
Salida visual Métricas en tiempo real
Informes detallados Estadísticas de rendimiento completas

Instalación

Elige tu sistema operativo y sigue estos sencillos pasos:

Linux:

bash
cargo install oha

MacOS:

bash
brew install oha

Windows:

bash
winget install hatoo.oha

Uso básico

Comando de prueba sencillo:

bash
oha https://yourwebsite.com

Tabla de opciones comunes:

Opción Descripción Ejemplo
-n Solicitudes totales oha -n 200 https://site.com
-c Usuarios simultáneos oha -c 50 https://site.com
-q Solicitudes por segundo oha -q 100 https://site.com
–no-tui Desactivar la interfaz visual oha –no-tui https://site.com

Interpretación de los resultados

Analicemos una salida típica:

bash
Summary:
  Success rate: 100.00%
  Total:        0.6689 secs
  Slowest:      0.4123 secs
  Fastest:      0.0733 secs
  Average:      0.1557 secs
  Requests/sec: 299.0098

Métricas clave explicadas:

Métrica Qué significa Valores adecuados
Tasa de éxito Porcentaje de solicitudes correctas Debería estar cerca del 100 %
Tiempo medio Tiempo medio de respuesta Menos de 1 segundo
Solicitudes/seg Capacidad de procesamiento Depende de tus necesidades
La más lenta Peor tiempo de respuesta No debería superar 3 veces la media

Distribución de los tiempos de respuesta

El desglose por percentiles muestra cómo rinde tu sitio en todas las solicitudes:

  • Percentil 50 (mediana): experiencia de usuario normal
  • Percentil 90: respuestas más lentas pero aceptables
  • Percentil 99: peores escenarios

Salida real:

bash
╰─❯ oha https://www.bitdoze.com
Summary:
  Success rate: 100.00%
  Total:        0.6689 secs
  Slowest:      0.4123 secs
  Fastest:      0.0733 secs
  Average:      0.1557 secs
  Requests/sec: 299.0098

  Total data:   2.08 MiB
  Size/request: 10.64 KiB
  Size/sec:     3.11 MiB

Response time histogram:
  0.073 [1]   |
  0.107 [144] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.141 [5]   |■
  0.175 [0]   |
  0.209 [0]   |
  0.243 [0]   |
  0.277 [0]   |
  0.311 [5]   |■
  0.345 [15]  |■■■
  0.378 [18]  |■■■■
  0.412 [12]  |■■

Response time distribution:
  10.00% in 0.0803 secs
  25.00% in 0.0847 secs
  50.00% in 0.0935 secs
  75.00% in 0.3010 secs
  90.00% in 0.3617 secs
  95.00% in 0.3813 secs
  99.00% in 0.4108 secs
  99.90% in 0.4123 secs
  99.99% in 0.4123 secs


Details (average, fastest, slowest):
  DNS+dialup:   0.0811 secs, 0.0488 secs, 0.1036 secs
  DNS-lookup:   0.0001 secs, 0.0000 secs, 0.0005 secs

Status code distribution:
  [200] 200 responses

Escenarios básicos de prueba

  1. Comprobación rápida del estado
bash
oha -n 100 https://yoursite.com

Propósito: visión general rápida del rendimiento del sitio

  1. Prueba de carga
bash
oha -n 1000 -c 50 https://yoursite.com

Propósito: simular varios usuarios simultáneos

  1. Prueba de estrés
bash
oha -n 2000 -c 100 -q 200 https://yoursite.com

Propósito: encontrar los límites de rendimiento

Ejemplos de pruebas del mundo real

1. Pruebas de endpoints de API

bash
oha -n 500 -c 50 -m POST -T "application/json" -d '{"key":"value"}' https://api.yoursite.com/endpoint

Parámetros para probar una API:

Parámetro Descripción Uso
-m POST Método HTTP Para llamadas a la API
-T Tipo de contenido Especifica el formato de los datos
-d Cuerpo de la solicitud Envía datos

2. Simulación de tráfico máximo

bash
oha -n 2000 -c 100 --disable-keepalive https://yoursite.com

Configuración para tráfico máximo:

  • Más conexiones simultáneas (-c)
  • Keepalive desactivado para mayor realismo
  • Mayor número de solicitudes (-n)

Interpretación de los resultados

Tabla de métricas de rendimiento

Métrica Bueno Advertencia Crítico
Tiempo de respuesta < 1s 1-3s > 3s
Tasa de éxito > 99 % 95-99 % < 95 %
Solicitudes/seg Depende del sitio Caída del 20 % Caída > 30 %

Problemas comunes y soluciones

  1. Tiempos de respuesta elevados
  • Posibles causas:
    • Recursos del servidor agotados
    • Cuellos de botella en la base de datos
    • Código sin optimizar
  • Soluciones:
    • Implementar caché
    • Optimizar las consultas a la base de datos
    • Ampliar los recursos del servidor
  1. Solicitudes fallidas
  • Posibles causas:
    • Tiempo de espera del servidor agotado
    • Limitación de tasa (rate limiting)
    • Problemas de red
  • Soluciones:
    • Aumentar los valores de tiempo de espera
    • Ajustar los límites de tasa
    • Comprobar la configuración de red

Buenas prácticas para las pruebas de carga

Qué hacer y qué no hacer

✅ Sí:

  • Empieza con pruebas pequeñas
  • Prueba en horas de poco tráfico
  • Monitoriza los recursos del servidor
  • Prueba con regularidad
  • Documenta los resultados

❌ No:

  • Probar producción sin avisar
  • Ejecutar pruebas desde servidores de producción
  • Ignorar las tasas de error
  • Probar un solo endpoint

Comparación de oha con k6

k6 es una herramienta moderna de pruebas de carga de Grafana Labs que utiliza JavaScript para crear escenarios de prueba. A diferencia del sencillo enfoque por línea de comandos de oha, k6 te permite escribir scripts de prueba complejos que pueden simular comportamientos reales de los usuarios.

Comparación de características

Característica oha k6
Facilidad de uso ★★★★★ ★★★☆☆
Requiere scripting No Sí
Métricas en tiempo real Básicas Avanzadas
Curva de aprendizaje Mínima Moderada
Integración con CI/CD Limitada Amplia

Cuándo usar cada herramienta

Usa oha para:

  • Comprobaciones rápidas de rendimiento
  • Pruebas HTTP sencillas
  • Resultados inmediatos
  • Operaciones desde la línea de comandos

Usa k6 para:

  • Escenarios de usuario complejos
  • Análisis detallados de rendimiento
  • Integración en pipelines de CI/CD
  • Scripts de prueba personalizados

Conclusión

Las pruebas de carga web con oha ofrecen una forma sencilla y eficaz de medir y comprender el rendimiento de tu sitio en distintas condiciones. A lo largo de esta guía hemos visto cómo instalar y usar oha, cómo interpretar sus resultados y cómo aplicar las buenas prácticas para realizar pruebas de carga eficaces.

Recuerda que realizar pruebas con regularidad, documentar los resultados con cuidado y escalar gradualmente los parámetros de las pruebas son claves para mantener un rendimiento web óptimo. Tanto si gestionas un blog pequeño como una aplicación web compleja, la sencillez y las potentes funciones de oha lo convierten en una excelente opción para la monitorización rutinaria del rendimiento y las pruebas de carga. Al poner en práctica estas pruebas, céntrate en establecer métricas de referencia, monitorizar los cambios a lo largo del tiempo y usar la información obtenida para mejorar continuamente el rendimiento de tu sitio web y la experiencia del usuario.