Las categorías de herramientas de pruebas de carga

  • Basadas en scripts. Escribes el escenario en código y lo ejecutas en local o de forma distribuida. Flexible, revisable y con un mantenimiento que corre por tu cuenta.

  • Basadas en planes. Construyes el escenario en una UI y lo guardas como archivo de proyecto. Amplio soporte de protocolos; incómodo de revisar en un pull request.

  • Alojadas. Otro se encarga de ejecutar los generadores desde varias regiones. No hay infraestructura que mantener y pagas por ejecución.

Para la mayoría de los equipos, la elección importa menos que si la prueba mide algo significativo.

Tres comprobaciones antes de hacer cualquier prueba de carga

  • ¿Es correcto a una solicitud por segundo? Hacer pruebas de carga sobre un endpoint roto mide con qué rapidez puedes equivocarte. Es el trimestre desperdiciado más habitual en el trabajo de rendimiento.

  • ¿La ejecución limpia lo que crea? Una prueba de carga que crea registros y los deja ahí cambia el comportamiento de la siguiente ejecución, y de todo lo demás en ese entorno.

  • ¿El entorno es representativo? Los resultados de un entorno con una décima parte de los datos son una cifra, no una predicción.

La opción que casi nadie activa

Haz aserciones sobre los cuerpos de las respuestas, al menos en una muestra de las solicitudes. La mayoría de las herramientas de carga lo permiten y la mayoría de los equipos lo dejan desactivado porque reduce el rendimiento del generador. El resultado es un informe de carga impecable en verde mientras cada respuesta contiene una lista vacía.

Rápido e incorrecto es peor que lento y correcto, porque nadie lo investiga.

El valor está en el escenario

Los equipos dedican mucho tiempo a elegir entre herramientas de carga y muy poco al escenario, y es al revés: el escenario determina si la cifra significa algo.

Mil usuarios virtuales golpeando un único endpoint es fácil de construir y rara vez se parece a nada real. El tráfico real es una mezcla: sobre todo lecturas, unas cuantas escrituras, algún informe costoso de vez en cuando, y todo ello contra un conjunto de datos que ya acumula un año de historial. Un sistema puede soportar la versión sintética sin problemas y caerse con la realista, porque la contención está en un punto que el escenario simple nunca tocó.

Construir una mezcla que se parezca a tu tráfico real cuesta una tarde revisando logs y vale más que cualquier diferencia de funcionalidades entre las herramientas que estás comparando.

Dónde encaja la verificación funcional

Los planes de API generados incluyen casos límite y casos con forma de estrés, que sacan a la luz las combinaciones de entrada que vuelven lento un endpoint por un motivo estructural. Una consulta que se degrada con un tamaño de página grande aparece aquí mucho antes de que una prueba de capacidad la encuentre, y a una fracción del costo.

Eso no es una prueba de carga ni la sustituye. Es la capa barata que va por debajo, y es la capa que la mayoría de los equipos se salta en el camino hacia comprar un generador de carga.

Terminal

npm install -g @testsprite/testsprite-cli
testsprite setup

Si prefieres no instalar nada, el dashboard hace lo mismo. Todo lo demás que puede hacer la línea de comandos está en el repositorio del CLI.

Los detalles de funcionamiento están en la documentación de pruebas de API.

Cadencia

Carga antes de los lanzamientos y después de cambios de arquitectura. Corrección en cada pull request, porque es cuando arreglar una regresión sale más barato.

  • La GitHub App es un webhook que configuras en el dashboard de TestSprite. Escucha el evento de despliegue que tu pipeline ya genera, así que nada cambia en tu repositorio.

  • GitHub Actions coloca el paso dentro de tu propio workflow, configurado desde la terminal.

Qué cubre TestSprite antes de la ejecución de carga

Las tres comprobaciones de esta página, convertidas en producto. Corrección a una solicitud por segundo, mediante cobertura generada que hace aserciones sobre los cuerpos en lugar de los códigos de estado. Limpieza, porque Auto-Cleanup elimina exactamente lo que creó una ejecución en vez de buscar coincidencias por nombre. Y los casos límite que sacan a la luz la lentitud estructural, que aparecen aquí mucho antes de que una prueba de capacidad llegue a ellos.

La cobertura sale de API Discovery más tu especificación. Auto-Authentication mantiene las sesiones activas, Dynamic Variables traslada valores entre llamadas y Dependency Chains deduce un orden de ejecución seguro.

Tu generador de carga se queda exactamente donde está. Lo que ganas es que la cifra que produce describa un servicio que devuelve lo correcto, y esa es la diferencia entre una medición y una cifra contundente que no describe nada.

¿TestSprite genera carga?

No. Verifica la corrección, incluidos los casos límite. La concurrencia sostenida necesita un generador dedicado.

¿Qué herramienta de pruebas de carga deberíamos elegir?

La que tu equipo vaya a mantener de verdad. Las diferencias entre las opciones principales importan menos que si el escenario es significativo.

¿Con qué frecuencia deberíamos hacer pruebas de carga?

Antes de los lanzamientos y después de cambios de arquitectura. Las pruebas de carga continuas son caras y rara vez te dicen algo nuevo entre esos momentos.

¿Podemos hacer pruebas de carga en CI?

Una comprobación del tamaño de un smoke test, sí. Una prueba de capacidad completa en CI implica o un nivel de carga sin sentido o un pipeline muy lento.

¿Cuál es el error más común?

Hacer pruebas de carga antes de verificar la corrección. Una cifra de rendimiento contundente sobre un endpoint que devuelve resultados vacíos es peor que no tener ninguna cifra.

La versión corta

Tres comprobaciones antes de elegir una herramienta.

Las herramientas de pruebas de carga responden a la capacidad y dan por supuesto que el servicio ya es correcto. Verifica la corrección a una solicitud por segundo, asegúrate de que las ejecuciones limpian lo que crean, usa un entorno representativo y activa las aserciones sobre los cuerpos.