Comment utiliser le plug-in open source MQTT dans JMeter


  • Français


  • Dans un article précédent, j’ai décrit comment JMeter prend en charge HTTP, HTTPS, TCP et d’autres protocoles courants et dispose d’un mécanisme d’extension de plug-in.

    Grâce aux plug-ins, vous pouvez prendre en charge bien plus que ce qui est intégré, y compris MQTT.

    MQTT est un protocole courant dans le monde de l’IoT. Bien qu’il ne s’agisse pas d’un type de protocole fourni avec JMeter, il est extrêmement courant dans les scénarios de test IoT. Afin de prendre en charge les tests de charge du protocole MQTT, EMQ a développé un plug-in de test open source basé sur JMeter pour le protocole MQTT.

    Cet article explique comment utiliser le plug-in MQTT dans JMeter.

    Installez le plug-in MQTT sur JMeter

    L’installation du plug-in MQTT est similaire à celle des autres plug-ins tiers JMeter :

    1. Téléchargez la dernière version du plug-in mqtt-xmeter-2.0.2-jar-with-dependencies.jar à partir de GitHub. Le plug-in prend en charge JMeter 3.2 et supérieur.
    2. Copiez le package jar du plug-in dans le répertoire du plug-in de JMeter : $JMETER_HOME/lib/ext.
    3. Redémarrez JMeter.

    Au moment de la rédaction, le plug-in JMeter MQTT prend en charge une variété d’échantillonneurs, tels que la connexion, la publication de messages et l’abonnement aux messages.

    Ceux-ci peuvent être combinés pour construire des scénarios de test plus complexes.

    Échantillonneur de connexion MQTT

    Le Connect Sampler simule un appareil IoT et initie une connexion MQTT.

    (Chongyuan Yin, CC BY-SA 4.0)

    Nom du serveur ou IP : L’adresse du serveur MQTT testé.

    Numéro de port: En prenant le courtier EMQX comme exemple, les ports par défaut sont 1883 pour les connexions TCP et 8883 pour les connexions SSL. Veuillez vous référer à la configuration spécifique du serveur pour le port spécifique.

    Version MQTT : Prend actuellement en charge les versions MQTT 3.1 et 3.1.1.

    Temps libre: Paramètre de délai de connexion, en secondes.

    Protocoles : Prend en charge les connexions TCP, SSL, WS et WSS aux serveurs MQTT. Lors de la sélection d’une connexion de canal crypté SSL ou WSS, une authentification unidirectionnelle ou bidirectionnelle (Dual) peut être sélectionnée. Si une authentification bidirectionnelle est requise, spécifiez le certificat client approprié (certificat p12) et le mot de passe de protection de fichier correspondant (Secret).

    Authentification d’utilisateur: Si le serveur MQTT est configuré pour l’authentification des utilisateurs, fournissez le nom d’utilisateur et le mot de passe correspondants.

    Identité du client: L’identité de l’utilisateur virtuel. Si Ajouter un suffixe aléatoire pour ClientId est activé, une chaîne UUID est ajoutée en tant que suffixe à chaque ClientId et à l’ensemble de l’identifiant d’utilisateur virtuel.

    Rester en vie: L’intervalle d’envoi des signaux de pulsation. Par exemple, 300 signifie que le client envoie des requêtes ping au serveur toutes les 300 secondes pour maintenir la connexion active.

    Tentative de connexion max : Le nombre maximum de tentatives de reconnexion lors de la première connexion. Si ce nombre est dépassé, la connexion est considérée comme ayant échoué. Si l’utilisateur veut continuer à essayer de se reconnecter, réglez-le sur -1.

    Tentative de reconnexion max : Le nombre maximum de tentatives de reconnexion lors des connexions suivantes. Si ce nombre est dépassé, la connexion est considérée comme ayant échoué. Si l’utilisateur veut continuer à essayer de se reconnecter, réglez-le sur -1.

    Séance propre : Définissez cette option sur false lorsque l’utilisateur souhaite conserver l’état de la session entre les connexions ou sur true lorsqu’il ne souhaite pas conserver l’état de la session dans les nouvelles connexions.

    Échantillonneur de publication de messages MQTT (Échantillonneur de pub MQTT)

    L’échantillonneur de publication de messages réutilise la connexion MQTT établie dans l’échantillonneur de connexion pour publier des messages sur le serveur MQTT cible.

    (Chongyuan Yin, CC BY-SA 4.0)

    Niveau de qualité de service : Qualité de service, avec les valeurs 0, 1 et 2, représentant AT_MOST_ONCE, AT_LEAST_ONCEet EXACTLY_ONCErespectivement, dans la spécification du protocole MQTT.

    Messages retenus : Si vous souhaitez utiliser des messages conservés, définissez cette option sur true pour que le serveur MQTT stocke les messages conservés publiés par le plug-in à l’aide de la QoS donnée. Lorsque l’abonnement se produit sur le sujet correspondant, le dernier message retenu est délivré directement à l’abonné. Par conséquent, l’abonné n’a pas à attendre pour obtenir la dernière valeur d’état de l’éditeur.

    Nom du sujet: Le sujet du message publié.

    Ajoutez un horodatage dans la charge utile : S’il est activé, l’horodatage actuel est attaché au début du corps du message publié. Avec le La charge utile inclut l’horodatage option de l’échantillonneur d’abonnement de message, cela peut calculer le temps de retard atteint par le message à la réception du message. Si désactivé, seul le corps du message réel est envoyé.

    Charges utiles et Type de message: Trois types de messages sont actuellement pris en charge :

    • Chaîne : chaîne ordinaire.
    • Chaîne hexadécimale : une chaîne est présentée sous la forme d’une valeur hexadécimale, telle que Hello, qui peut être représentée par 48656C6C6F (où 48 correspond à la lettre H dans la table ASCII, etc.). En règle générale, les chaînes hexadécimales sont utilisées pour construire des corps de message non textuels, tels que la description de certaines interactions de protocole privé, des informations de contrôle, etc.
    • Chaîne aléatoire de longueur fixe : une chaîne aléatoire d’une longueur spécifiée (en octets) est générée en tant que corps de message.

    Échantillonneur d’abonnement aux messages MQTT (MQTT Sub Sampler)

    L’échantillonneur de pub de messages réutilise la connexion MQTT établie dans l’échantillonneur de connexion pour s’abonner aux messages du serveur MQTT cible.

    (Chongyuan Yin, CC BY-SA 4.0)

    Niveau de qualité de service : Qualité de service, la signification est la même que pour Message Pub Sampler.

    Nom du sujet: Rubrique à laquelle appartient le message auquel vous êtes abonné. Un échantillonneur d’abonnement à un seul message peut s’abonner à plusieurs rubriques, séparées par des virgules.

    La charge utile inclut l’horodatage : S’il est activé, l’horodatage est analysé à partir du début du corps du message, qui peut être utilisé pour calculer le délai de réception du message avec le Ajouter un horodatage dans l’option de charge utile de l’échantillonneur de distribution de messages. Si désactivé, seul le corps du message réel est analysé.

    Échantillon sur : Pour la méthode d’échantillonnage, la valeur par défaut est temps écoulé spécifié (ms), comme l’échantillonnage toutes les millisecondes. Les nombre de messages reçus peuvent également être sélectionnés, comme l’échantillonnage une fois pour chaque nombre spécifié de messages reçus.

    Réponse de débogage : Si cette case est cochée, le contenu du message est imprimé dans la réponse JMeter. Cette option est principalement utilisée à des fins de débogage. Il n’est pas recommandé d’exécuter le test formellement lorsqu’il est coché afin d’éviter d’affecter l’efficacité du test.

    Échantillonneur de déconnexion MQTT (MQTT DisConnect)

    Déconnecte la connexion MQTT établie dans l’échantillonneur de connexion.

    (Chongyuan Yin, CC BY-SA 4.0)

    Pour plus de flexibilité, les valeurs de propriété dans l’échantillonneur ci-dessus peuvent faire référence au système de JMeter ou à des variables personnalisées.

    MQTT et JMeter

    Dans cet article, j’ai présenté les différents composants de test du plug-in JMeter MQTT. Dans un autre article, j’expliquerai en détail comment créer des scripts de test avec le plug-in MQTT pour différents scénarios de test.


    Cet article est initialement paru sur Comment utiliser le plug-in MQTT dans JMeter et est republié avec autorisation.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code