Modificar el grupo de subprocesos de un plan de prueba de JMeter externo (archivo JMX)

Aug 18 2020

Mi aplicación tomará el archivo jmx como plan de prueba del usuario y lo ejecutará. Tengo una configuración distribuida de JMeter en el backend de mi aplicación (1 cliente JMeter y varios servidores JMeter).

El desafío al que me enfrento es con los #threads necesarios para ejecutar el plan de prueba.

  1. Si tomo #instancias (servidores JMeter que ejecutan la prueba) y #threads explícitamente del usuario, ¿cómo configuro el plan de prueba proporcionado por el usuario con este Thread-group antes de la ejecución? Esto me permitirá verificar estos valores con mi clúster y la capacidad de la máquina de antemano.

Había leído sobre Incluir controlador, pero eso necesariamente requiere que el plan de prueba del usuario tenga Fragmento de prueba.

  1. Si no es explícito, ¿cómo verifico la configuración del grupo de subprocesos en el plan de prueba del usuario? Supongamos que el usuario ha puesto #threads grandes en el plan de prueba que podrían sobrecargar mi máquina servidor JMeter, ¿cómo verifico este valor y probablemente le advierto al usuario que limite los #threads?

Respuestas

1 DmitriT Aug 18 2020 at 15:47
  1. No existe tal cosa como "#threads_per_instance" en el mundo JMeter, si ejecuta JMeter en modo distribuido, cada servidor (o esclavo o generador de carga) ejecuta el plan de prueba .jmx proporcionado por el cliente, ya que si el usuario carga el archivo con 100 subprocesos en un grupo de subprocesos y tiene 1 esclavo - tendrá 100 usuarios. Si tiene 2 esclavos, tendrá 200 usuarios, etc.

    Otra cosa es que no puede saber cuántos subprocesos podrá simular de un solo esclavo de JMeter de antemano, ya que depende principalmente de la naturaleza de la prueba: tamaño de solicitud / respuesta, número de procesadores pre / post, afirmaciones, oyentes, etc. Recomendaría implementar alguna forma de monitoreo de salud de los esclavos JMeter y advertir al usuario si el uso de la CPU o RAM o la red comienza a exceder el 80%. Se puede lograr fácilmente con el complemento JMeter PerfMon

  2. No sabemos qué tecnologías se están utilizando en "su aplicación", por lo que esta pregunta es demasiado amplia. Los scripts .jmx de JMeter son solo archivos XML, por lo que debería poder usar el analizador XML para extraer el número de subprocesos en todos los grupos de subprocesos y "validarlo" de alguna manera.