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.