jMeter - Fonctions

Fonctions JMeter et variables utilisateur

Les fonctions JMeter sont des valeurs spéciales qui peuvent remplir les champs de n'importe quel échantillonneur ou autre élément d'une arborescence de test.

  • Un appel de fonction ressemble à ceci -

${__functionName(var1,var2,var3)}
  • _functionName correspond au nom d'une fonction. Par exemple${__threadNum}.

  • Si un paramètre de fonction contient une virgule, assurez-vous de l'échapper avec "\" comme indiqué ci-dessous -

${__time(EEE\, d MMM yyyy)}
  • Les variables sont référencées comme -

${VARIABLE}

Liste des fonctions

Le tableau suivant répertorie un groupe de fonctions regroupées en types -

Type de fonction Nom Commentaire
Information threadNum Obtenez le numéro de fil.
Information samplerName Obtenez le nom de l'échantillonneur (étiquette).
Information machineIP Obtenez l'adresse IP de la machine locale.
Information nom de la machine Obtenez le nom de l'ordinateur local.
Information temps Renvoie l'heure actuelle dans différents formats.
Information Journal Enregistrer (ou afficher) un message (et renvoyer la valeur).
Information se connecter Enregistrer (ou afficher) un message (valeur de retour vide).
Contribution StringFromFile Lire une ligne dans un fichier.
Contribution FileToString Lisez un fichier entier.
Contribution CSVRead Lire à partir d'un fichier délimité CSV.
Contribution XPath Utilisez une expression XPath pour lire à partir d'un fichier.
Calcul compteur Générez un nombre incrémentiel.
Calcul intSum Ajoutez des nombres int.
Calcul longSum Ajoutez des nombres longs.
Calcul Aléatoire Générez un nombre aléatoire.
Calcul RandomString Générez une chaîne aléatoire.
Calcul UUID Générez un UUID de type 4 aléatoire.
Scripting BeanShell Exécutez un script BeanShell.
Scripting javaScript Processus JavaScript (Mozilla Rhino).
Scripting jexl, jexl2 Évaluez une expression Jexl Commons.
Propriétés propriété Lire une propriété.
Propriétés P Lire une propriété (méthode abrégée).
Propriétés setProperty Définissez une propriété JMeter.
Variables Divisé Divisez une chaîne en variables.
Variables V Évaluez un nom de variable.
Variables évaluer Évaluez une expression variable.
Variables evalVar Évaluez une expression stockée dans une variable.
Chaîne regexFunction Analyser la réponse précédente à l'aide d'une expression régulière.
Chaîne escapeOroRegexpChars Cite les méta caractères utilisés par l'expression régulière ORO.
Chaîne carboniser Générez des valeurs de caractères Unicode à partir d'une liste de nombres.
Chaîne unescape Traitez les chaînes contenant des échappements Java (par exemple \ n & \ t).
Chaîne unescapeHtml Décodez les chaînes encodées en HTML.
Chaîne escapeHtml Encodez les chaînes à l'aide du codage HTML.
Chaîne TestPlanName Renvoie le nom du plan de test actuel.
  • Il existe deux types de fonctions -

    • Valeurs statiques (ou variables) définies par l'utilisateur

    • Fonctions intégrées

  • Les valeurs statiques définies par l'utilisateur permettent à l'utilisateur de définir des variables à remplacer par leur valeur statique lorsqu'un arbre de test est compilé et soumis à l'exécution.

  • Les variables ne peuvent pas être imbriquées; c'est à dire${Var${N}} ne marche pas.

  • La fonction __V (variable) (versions après 2.2) peut être utilisée pour cela - $ {__ V (Var $ {N})}.

  • Ce type de remplacement est possible sans fonctions, mais il est moins pratique et moins intuitif.

Où utiliser les fonctions et les variables

Les fonctions et les variables peuvent être écrites dans n'importe quel champ de n'importe quel composant de test.

Les fonctions suivantes devraient bien fonctionner dans un plan de test -

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • fonctions de propriété
  • fonctions de journalisation

Les fonctions utilisées dans le plan de test comportent certaines restrictions. Les variables de thread JMeter n'auront pas été entièrement configurées lorsque les fonctions sont traitées, donc les noms de variables passés en tant que paramètres ne seront pas configurés et les références de variables ne fonctionneront pas. Par conséquent, split () et regex () et les fonctions d'évaluation des variables ne fonctionneront pas. La fonction threadNum () ne fonctionnera pas et n'a aucun sens au niveau du plan de test.

Référencer des variables et des fonctions

  • Le référencement d'une variable dans un élément de test se fait en mettant entre parenthèses le nom de la variable avec '$ {' et '}'.

  • Les fonctions sont référencées de la même manière, mais par convention, les noms des fonctions commencent par «__» pour éviter tout conflit avec les noms de valeurs utilisateur.

  • Certaines fonctions prennent des arguments pour les configurer, et ceux-ci sont placés entre parenthèses, séparés par des virgules. Si la fonction ne prend aucun argument, les parenthèses peuvent être omises. Par exemple -

${__BeanShell(vars.put("name"\,"value"))}
  • Vous pouvez également définir votre script en tant que variable, par exemple sur le plan de test -

SCRIPT     vars.put("name","value")
  • Le script peut alors être référencé comme suit -

${__BeanShell(${SCRIPT})}

La boîte de dialogue d'aide aux fonctions

La boîte de dialogue Function Helper est disponible à partir de JMeter Options languette.

  • À l'aide de l'aide aux fonctions, vous pouvez sélectionner une fonction dans le menu déroulant et affecter des valeurs à ses arguments. La colonne de gauche du tableau fournit une brève description de l'argument et la colonne de droite est l'endroit où vous écrivez la valeur de cet argument. Différentes fonctions prennent des arguments différents.

  • Une fois que vous avez fait cela, cliquez sur le bouton «Générer», et la chaîne appropriée est générée, que vous pouvez copier-coller dans le plan de test partout où vous en avez besoin.

Variables prédéfinies

Certaines variables sont définies en interne par JMeter. Ils sont -

  • COOKIE_cookiename - contient la valeur du cookie.

  • JMeterThread.last_sample_ok - que le dernier échantillon soit OK ou non - vrai / faux. Remarque - ceci est mis à jour après l'exécution des PostProcessors et des Assertions.

  • Variables START.

Propriétés prédéfinies

Certaines propriétés intégrées sont définies par JMeter. Ceux-ci sont énumérés ci-dessous. Pour plus de commodité, les propriétés START sont également copiées dans des variables portant les mêmes noms.

  • START.MS - Heure de début de JMeter en millisecondes.

  • START.YMD - Heure de début JMeter au format aaaaMMjj.

  • START.HMS - Heure de début de JMeter comme HHmmss.

  • TESTSTART.MS - heure de début du test en millisecondes.

Notez que les variables / propriétés START représentent l'heure de démarrage de JMeter, pas l'heure de début du test. Ils sont principalement destinés à être utilisés dans les noms de fichiers, etc.