fbpx

¿Por qué necesitamos pruebas de carga para aplicaciones web?

 

Las empresas minoristas y de comercio electrónico dependen totalmente de las tasas de clics. Cada vez que las tasas de abandono suenan, tiene un impacto adverso en sus ingresos globales. Por lo tanto, las organizaciones exitosas integran las pruebas de carga en su cadena de desarrollo para validar los requisitos no funcionales, dimensionar su hardware en consecuencia y comprender los puntos de interrupción de sus servicios de TI.

La idea de que «el 90 por ciento de todas las interacciones del usuario deben estar por debajo de dos segundos» es un ejemplo clásico de un requisito no funcional. Obviamente, no puede probar esto manualmente porque necesita simular la carga esperada y verificar los tiempos de respuesta del percentil 90 para todas las acciones del usuario.

Otro caso de uso para las pruebas de carga es verificar el tamaño del hardware real o necesario. Las empresas reducen los costos de TI y ya no pueden permitirse máquinas de gran tamaño. La utilización de CPU y memoria durante las actividades de un solo usuario suele ser mínima. En situaciones de usuario concurrentes, esto se ve completamente diferente. La utilización demasiado alta de los recursos del sistema tiene un impacto adverso en los tiempos de respuesta, y el hardware de gran tamaño es demasiado costoso. Las pruebas de carga le ayudarán a encontrar el tamaño adecuado.

Desde una perspectiva operativa, es esencial comprender cómo y cuándo un servicio comienza a fallar en determinadas situaciones de carga de trabajo. Hay escenarios de carga del Black Friday espiados o cifras de alto uso permanentes que podrían conducir a problemas graves. El primero necesita más capacidad temporal, mientras que el segundo tiene diferentes demandas y requiere un aumento permanente de la capacidad. Las pruebas de carga son la única medida que proporciona información sobre estos escenarios críticos.

Las pruebas de carga son una excelente inversión, principalmente porque ayudan a generar confianza en sus servicios de TI y dan a las organizaciones la confianza de que el sistema nuevo o modificado funciona dentro de los límites acordados.

 

Herramientas de prueba de carga de aplicaciones web

Hace casi 30 años, los primeros pioneros web comenzaron con el desarrollo de plataformas de simulación de carga. Las páginas web eran simples, y el contenido era principalmente estático. Con el auge de la tecnología, muchos servicios están ahora disponibles en línea. La competencia es alta y las empresas tratan de mantener los existentes o ganar nuevos clientes con mejores servicios. Una oportunidad para mejorar la calidad del servicio es proporcionar aplicaciones receptivas y confiables.

En los últimos años han aparecido nuevas soluciones de prueba de carga en este mercado en crecimiento. Pioneros como JMeter o LoadRunner se implementaron en la máquina local de una empresa. Con el auge de la computación en la nube, algunos de ellos extendieron su servicio a plataformas SaaS o de pruebas de carga bajo demanda.

 

Herramientas de prueba de aplicaciones web locales

Hay soluciones de pruebas de carga locales y de código abierto que se pueden implementar en la infraestructura local de un cliente. Las herramientas de código abierto son gratuitas, mientras que las soluciones comerciales cobran las tarifas iniciales de licencia y entregan el software. El cliente implementa actualizaciones en sus servidores de pruebas locales por sí mismos. Si se producen algunos desafíos de ejecución o script de prueba de carga, un especialista de soporte técnico puede estar implicado para investigar y solucionar el problema identificado.

 

Herramientas de prueba de aplicaciones web bajo demanda/SaaS

Mantener una infraestructura de pruebas de carga local puede ser difícil, por lo tanto, las empresas exitosas a menudo cambian a una oferta basada en la nube que evita el dolor de operar granjas de pruebas de carga locales. El beneficio es que no hay tareas de mantenimiento o tarifas involucradas y el cliente solo paga por el servicio requerido.

 

Prácticas recomendadas para las pruebas de carga en aplicaciones web

Si no tiene experiencia en la realización de pruebas de carga, la probabilidad es alta de que se encontrará con trampas y puede que no alcance sus objetivos. Sin embargo, si puede evitar algunas de las dificultades enumeradas a continuación, y dará un buen paso hacia servicios de TI confiables y receptivos.

En primer lugar, asegúrese de especificar un patrón de carga realista para la prueba de carga. No debe confiar plenamente en las cifras dadas en la documentación de requisitos no funcionales. Incluso si una aplicación ya está en producción, la probabilidad es alta de que su uso ha cambiado con el tiempo. Para los nuevos servicios que todavía no se implementan en producción, el uso de Little’s Law para calcular el patrón de carga puede ser útil. Si ya hay un entorno productivo y los clientes reales utilizan los nuevos servicios, analice los archivos de registro, derive las interacciones del usuario por hora y el número de sesiones simultáneas de estos registros. Considere la carga promedio real, las cargas de tipo Black Friday y los patrones de crecimiento futuros en sus pruebas.

Otro peligro es elegir la simulación de usuario adecuada. Las soluciones de pruebas de carga de código abierto son notorias por proporcionar soporte de simulación limitado. A menudo se les ocurre la generación de carga basada en protocolos. Considere una aplicación moderna basada en web que carga su contenido mientras el usuario hace clic en la página siguiente. Una gran proporción de estas actividades no se pueden capturar en el nivel de protocolo porque el procesamiento del lado cliente se deja fuera por completo. Por lo tanto, revise cuidadosamente la aplicación en condiciones de prueba antes de decidir el enfoque de simulación de usuario. Las aplicaciones web modernas normalmente requieren una técnica real de simulación de usuario virtual basada en navegador.

Por último, tenga en cuenta que el rendimiento es más un viaje que un destino. Cuanto más adelante detecte puntos de acceso en su cadena de desarrollo, más se requiere reelaboración para corregirlos. Comience con pruebas de carga basadas en componentes o servicios en etapas de desarrollo, considere las ejecuciones de pruebas diarias, utilice umbrales para identificar puntos de interrupción y cambie a escenarios de simulación de nivel de usuario real más sofisticados en etapas de control de calidad una vez que la aplicación se haya integrado con sus sistemas circundantes.