Cómo probar el rendimiento del sitio web con 1 millón de usuarios en jmeter

Hola,

Esto se puede lograr a través de pruebas distribuidas. En esta técnica, una máquina actúa como maestra y otras máquinas actúan como esclavas (generadores de carga) y puede distribuir la carga de los usuarios a través de estas máquinas esclavas. Este es un enfoque estándar seguido en las empresas de pruebas de software para ejecutar la prueba para una carga de usuario tan grande.

Puede configurar este entorno localmente en sus máquinas físicas, sin embargo, su requisito es ejecutar la prueba para 1 millón de usuarios, por lo que recomendaría usar máquinas virtuales en la nube como AWS, Microsoft Azure, etc. o herramientas de prueba de carga en la nube como BlazeMeter, Flood .io para ejecutar la prueba.

Si planea utilizar máquinas virtuales en la nube, el siguiente documento de prueba distribuido de JMeter sería útil para configurar la configuración maestro-esclavo en las máquinas virtuales.

https://jmeter.apache.org/userma…

Y, si va a usar herramientas de prueba de carga en la nube, le proporcionarán un entorno listo para usar para ejecutar la prueba de carga y esto reducirá la responsabilidad de configurar la configuración Maestro-Esclavo. Pero todas estas herramientas en la nube son comerciales y tienen diferentes planes según el requisito.

Espero que esta respuesta te sea útil.

Gracias,
Anand

Ampliar una prueba de carga suele ser un proceso escalonado. Por lo general, comienza con la creación de un plan de prueba de carga que tenga sentido, simulando las interacciones que representan las interacciones de sus usuarios o llamadas API. Una vez que tenga el plan de prueba de carga, la mayoría lo escala aumentando el recuento de hilos de usuario en la interfaz de usuario de JMeter y simulando a más de un usuario desde su propia máquina. A partir de aquí comienza el proceso de escalado, pero en muchos casos necesitará calcular el rendimiento de un único agente de carga y escalar desde allí.

a: cree su propia infraestructura para ejecutar muchos agentes de carga JMeter. Maharshi escribió una muy buena publicación sobre la ampliación de JMeter en la nube – JMeter en AWS: Pruebas de rendimiento en la nube – Diarios de pruebas

b – use un proveedor de prueba de carga en la nube de bajo costo como RedLine13: (Casi) Prueba de carga gratuita en la nube (para su información, soy un fundador) que puede escalar sus pruebas de JMeter.

c: utilice un proveedor de servicios completo como BlazeMeter para ejecutar sus pruebas de JMeter.

Dado que tiene suficientes máquinas que puede usar como generadores de carga, no es un problema configurar JMeter para dicha carga.

Lo más probable es que no pueda producir una carga de este tipo desde un solo host, así que considere ejecutar JMeter en modo distribuido cuando un maestro JMeter orquesta esclavos X que actúan como generadores de carga.

La configuración predeterminada de JMeter no es adecuada para grandes cargas, solo es buena para el desarrollo de scripts y la depuración.

Asegúrese de agregar HTTP Cache Manager a su plan de prueba. Los navegadores con buen comportamiento solicitan recursos “pesados” de las páginas web (como imágenes, estilos, scripts, etc.) solo una vez, en una solicitud posterior, estas cosas se devuelven del caché del navegador. Debe simular el mismo comportamiento, de lo contrario su carga no será realista.

Debes considerar 2 cosas:

  1. Lo más probable es que no pueda producir tal carga utilizando una sola instancia de JMeter. Consulte la guía paso a paso de JMeter Distributed Testing para obtener más detalles.
  2. La configuración predeterminada de JMeter no es adecuada para grandes cargas, solo se puede usar para el desarrollo de pruebas y la depuración. Por lo tanto, deberá agregar al menos un poco más de espacio de Java Heap. Localice esta línea en el script de inicio de JMeter:

HEAP = “- Xms512m -Xmx512m”

y enmendar el límite superior en consecuencia.

Consulte 9 Soluciones fáciles para una guía de fallas “Sin memoria” de JMeter Load Test para obtener más ajustes de ajuste de JMeter y mejores prácticas de desarrollo de pruebas.

G’day

Normalmente, probar para un millón de usuarios implica ejecutar una herramienta de prueba de carga con un millón de usuarios virtuales, lo que generalmente significa un millón de hilos. Eso requerirá una gran cantidad de cajas de host del generador de carga, por lo que, a menos que tenga muchas cajas, probablemente necesite entregar la carga desde la nube. (Eso a su vez significa exponer su sistema bajo prueba a través de Internet a menos que su sistema bajo prueba también esté en la nube del mismo proveedor). Por lo tanto, probablemente estaría viendo una u otra de las herramientas de prueba de carga basadas en la nube. Aquí hay una lista: ¿Cuáles son las principales aplicaciones web de prueba de carga basadas en la nube? ¿Cómo le va a SOASTA en el mercado? ¿Hay alguna estimación de ingresos y quiénes son sus competidores? pero no hay duda de otros.

Puede haber una alternativa. Si su sistema bajo prueba no tiene estado, entonces puede estar bien probar con menos usuarios, pero más activos, para que obtenga la misma tasa de transacción pero con menos subprocesos y menos hosts de generador de carga. Suponiendo que sus usuarios estuvieran haciendo dos transacciones por minuto cada una, son solo 33,000 transacciones por segundo. No necesitará muchas cajas para generar esa carga y puede hacerlo en casa. Incluso si no está bien hacer esto, podría estar bien hacerlo primero hasta que esté satisfecho de que los servidores puedan manejar la tasa de transacción. Entonces podría probar con un millón de usuarios generando la misma carga.