Red de conocimiento informático - Material del sitio web - Cómo utilizar el complemento MQTT en JMeter

Cómo utilizar el complemento MQTT en JMeter

JMeter tiene soporte integrado para múltiples protocolos como HTTP/HTTPS y TCP, y proporciona mecanismos de extensión de complementos.

El protocolo MQTT es un protocolo convencional en el campo de IoT. No es un tipo de protocolo que viene con JMeter, pero es extremadamente común en escenarios de prueba de IoT. Para admitir pruebas del protocolo MQTT a gran escala, EMQ ha desarrollado un complemento de prueba de código abierto para el protocolo MQTT basado en JMeter: /xmeter-net/mqtt-jmeter.

Después de muchas iteraciones, la última versión del complemento JMeter MQTT es 2.0.2, que admite conexiones, publicación de mensajes, suscripción de mensajes y otras muestras, y se puede combinar para crear escenarios de prueba más complejos.

En este artículo, explicaremos cómo utilizar el complemento MQTT en JMeter.

La instalación del complemento MQTT es similar a la de otros complementos de terceros de JMeter.

Conecte el muestreador para simular un dispositivo IoT e iniciar una conexión MQTT.

Nombre del servidor o IP: Apunta a la dirección del servidor MQTT bajo prueba.

Número de puerto: Para EMQ X, el puerto predeterminado para la conexión TCP es 1883 y el puerto predeterminado para la conexión SSL es 8883. Consulte la configuración del servidor para puertos específicos.

Versión MQTT: Actualmente soporta MQTT 3.1 y 3.1.1.

Tiempo de espera: Configuración del tiempo de espera de la conexión (en segundos).

Protocolos: Soporta conexiones TCP, SSL, WS y WSS a servidores MQTT. Al seleccionar una conexión de canal cifrado SSL o WSS, puede elegir autenticación unidireccional o bidireccional (Dual). Si se requiere autenticación bidireccional, debe especificar el certificado de cliente correspondiente (certificado p12) y la contraseña de protección de archivos correspondiente (Secreta).

Autenticación de usuario: si el servidor MQTT está configurado para la autenticación de usuario, debe proporcionar el nombre de usuario correspondiente (Nombre de usuario) y la contraseña (Contraseña).

ClientId: Identificador del usuario virtual. Si se marca "Agregar sufijo aleatorio a ClientId", se agregará una cadena uuid a ClientId como sufijo para cada usuario virtual y el sufijo completo se utilizará como identificador de usuario virtual.

Mantener vivo(s): Intervalo de señal de latido. Por ejemplo, 300 significa que el cliente envía una solicitud de ping al servidor cada 300 segundos para mantener la conexión activa.

Máximo de intentos de conexión: El número máximo de intentos de reconexión durante la primera conexión. Si se excede este número, la conexión se considerará fallida. Establezca esto en -1 si desea continuar intentando volver a conectarse.

Número máximo de intentos de reconexión: el número máximo de intentos de reconexión en conexiones posteriores. Si se excede este número, la conexión se considerará fallida.

Sesión limpia: puede configurarlo en falso si desea que el estado de la sesión se mantenga entre conexiones; puede configurarlo en verdadero si no desea que el estado de la sesión se mantenga en nuevas conexiones.

Multiplexor de muestra de publicación de mensajes Se conecta a una conexión MQTT establecida en la muestra para publicar mensajes en un servidor MQTT de destino.

Nivel QoS: Calidad de servicio, representando los valores 0, 1 y 2 AT_MOST_ONCE, AT_LEAST_ONCE y EXACTLY_ONCE respectivamente en la especificación del protocolo MQTT. fuerte> Conservar mensajes: si desea utilizar "Conservar mensajes", puede configurar esta opción en verdadero. El servidor MQTT almacenará los mensajes retenidos y su QoS para el editor del complemento, y cuando se produzca una suscripción al tema correspondiente, entregará el último mensaje retenido directamente al lado del suscriptor, de modo que el lado del suscriptor no tenga esperar la publicación del último mensaje.

Cuando se produce una suscripción al tema correspondiente, el último mensaje retenido se entregará directamente al suscriptor, de modo que el suscriptor pueda obtener el estado más reciente del editor sin tener que esperar.

Nombre del tema: El tema al que pertenece el mensaje publicado.

Agregar marca de tiempo en la carga útil: si está marcada, el cuerpo del mensaje publicado tendrá la marca de tiempo actual al comienzo del mensaje, además la carga útil de la muestra de suscripción contiene la opción de marca de tiempo, puede calcular el tiempo de retraso del mensaje. en el extremo receptor. Si no está marcado, solo se envía el cuerpo del mensaje real.

Tipos de mensajes de carga útil: actualmente se admiten tres tipos de mensajes.

El Sample Publishing Sampler reutiliza la conexión MQTT establecida en Connection Sampler para suscribirse a mensajes del servidor MQTT de destino.

Nivel QoS: Calidad de Servicio, que tiene el mismo significado que Message Publishing Sampler.

Nombre del tema: El tema al que pertenece el mensaje de suscripción. Admite una muestra de suscripción de un solo mensaje para suscribirse a varios temas, separados por comas.

La carga útil incluye marca de tiempo: si está marcada, la marca de tiempo de envío se analizará desde el principio del cuerpo del mensaje y se puede usar con la opción Agregar marca de tiempo en la carga útil del muestrario de publicación de mensajes para calcular la latencia de recepción del mensaje. mensaje . Si no está marcada, solo se analiza el cuerpo del mensaje real.

Muestra en: método de muestreo, el valor predeterminado es "tiempo transcurrido especificado (ms)", es decir, muestreo cada milisegundo especificado. También puede seleccionar "Número de mensajes recibidos", que muestra cada vez que se recibe un número específico de mensajes.

Respuesta de depuración: si está marcada, el contenido del mensaje se imprimirá en los resultados de respuesta de JMeter. Esta opción está destinada principalmente a fines de depuración y no se recomienda para ejecutar pruebas, ya que puede afectar la eficiencia de sus pruebas.

Desconecta la conexión MQTT establecida en el sampler de conexiones.

En este artículo, presentamos el componente de prueba del complemento JMeter MQTT y, en el siguiente artículo, presentaremos cómo usar el complemento MQTT para crear scripts de prueba para diferentes escenarios de prueba.