20. Fonctions et variables ¶
Les fonctions JMeter sont des valeurs spéciales qui peuvent remplir les champs de n'importe quel Sampler ou autre élément dans un arbre de test. Un appel de fonction ressemble à ceci :
${__functionName(var1,var2,var3)}
Où "__functionName" correspond au nom d'une fonction.
Des parenthèses entourent les paramètres envoyés à la fonction, par exemple ${__time(YMD)}
Les paramètres réels varient d'une fonction à l'autre. Les fonctions qui ne nécessitent aucun paramètre peuvent omettre les parenthèses, par exemple ${__threadNum} .
Si un paramètre de fonction contient une virgule, assurez-vous de l'échapper avec " \ ", sinon JMeter le traitera comme un délimiteur de paramètre. Par exemple:
${__time(EEE\, j MMM aaaa)}Si la virgule n'est pas échappée - par exemple ${__javaScript(Math.max(2,5))} - vous obtiendrez une erreur telle que :
ERREUR - jmeter.functions.JavaScript : erreur lors du traitement de Javascript : [Math.max(2]) org.mozilla.javascript.EvaluatorException : missing ) après la liste d'arguments (<cmd>#1)C'est parce que la chaîne " Math.max(2,5) " est traitée comme étant deux paramètres de la fonction __javascript :
Math.max(2 et 5)
D'autres messages d'erreur sont possibles.
Les variables sont référencées comme suit :
${VARIABLE}
Si une fonction ou une variable indéfinie est référencée, JMeter ne signale/enregistre pas d'erreur - la référence est renvoyée inchangée. Par exemple, si UNDEF n'est pas défini comme une variable, la valeur de ${UNDEF} est ${UNDEF} . Les variables, fonctions (et propriétés) sont toutes sensibles à la casse. JMeter supprime les espaces des noms de variables avant utilisation, donc par exemple ${__Random(1,63, LOTTERY )} utilisera la variable ' LOTTERY ' plutôt que ' LOTTERY '.
Alternativement, utilisez simplement / à la place du séparateur de chemin - par exemple C:/test/${test} - Les JVM Windows convertiront les séparateurs si nécessaire.
Liste des fonctions, vaguement regroupées en types.
Type de fonction | Nom | Commentaire | Depuis |
---|---|---|---|
Informations | threadNum | obtenir le numéro de fil | 1 FOIS |
Informations | threadGroupName | obtenir le nom du groupe de threads | 4.1 |
Informations | samplerName | obtenir le nom de l'échantillonneur (étiquette) | 2.5 |
Informations | machineIP | obtenir l'adresse IP de la machine locale | 2.6 |
Informations | nom de la machine | obtenir le nom de la machine locale | 1 FOIS |
Informations | temps | renvoie l'heure actuelle dans différents formats | 2.2 |
Informations | décalage dans le temps | renvoie une date dans différents formats avec le nombre spécifié de secondes/minutes/heures/jours ajoutés | 3.3 |
Informations | Journal | enregistrer (ou afficher) un message (et renvoyer la valeur) | 2.2 |
Informations | se connecter | consigner (ou afficher) un message (valeur de retour vide) | 2.2 |
Saisir | ChaîneDepuisFichier | lire une ligne d'un fichier | 1.9 |
Saisir | FichierVersChaîne | lire un fichier entier | 2.4 |
Saisir | CSVLire | lire à partir d'un fichier CSV délimité | 1.9 |
Saisir | XPath | Utiliser une expression XPath pour lire à partir d'un fichier | 2.0.3 |
Saisir | ChaîneVersFichier | écrire une chaîne dans un fichier | 5.2 |
Calcul | compteur | générer un nombre qui s'incrémente | 1 FOIS |
Mise en page | dateTimeConvert | Convertir une date ou une heure du format source au format cible | 4.0 |
Calcul | digérer | Générer un résumé (SHA-1, SHA-256, MD5...) | 4.0 |
Calcul | inSum | ajouter des nombres entiers | 1.8.1 |
Calcul | somme longue | ajouter de longs nombres | 2.3.2 |
Calcul | Aléatoire | générer un nombre aléatoire | 1.9 |
Calcul | DateAléatoire | générer une date aléatoire dans une plage de dates spécifique | 3.3 |
Calcul | RandomFromMultipleVars | extrait un élément des valeurs d'un ensemble de variables séparées par | | 3.1 |
Calcul | RandomString | générer une chaîne aléatoire | 2.6 |
Calcul | UUID | générer un UUID aléatoire de type 4 | 2.9 |
Script | sensationnel | exécuter un script Apache Groovy | 3.1 |
Script | Coquille de haricot | exécuter un script BeanShell | 1 FOIS |
Script | JavaScript | traiter JavaScript (Nashorn) | 1.9 |
Script | jexl2 | évaluer une expression Commons Jexl2 | jexl2(2.1.1) |
Script | jexl3 | évaluer une expression Commons Jexl3 | jexl3 (3.0) |
Propriétés | isPropDefined | Tester si une propriété existe | 4.0 |
Propriétés | propriété | lire un bien | 2.0 |
Propriétés | P | lire une propriété (méthode abrégée) | 2.0 |
Propriétés | setProperty | définir une propriété JMeter | 2.1 |
variables | diviser | Diviser une chaîne en variables | 2.0.2 |
variables | eval | évaluer une expression variable | 2.3.1 |
variables | evalVar | évaluer une expression stockée dans une variable | 2.3.1 |
Propriétés | isVarDefined | Tester si une variable existe | 4.0 |
variables | V | évaluer un nom de variable | 2.3RC3 |
Chaîne de caractères | carboniser | générer des valeurs de caractères Unicode à partir d'une liste de nombres | 2.3.3 |
Chaîne de caractères | changerCase | Changer de cas en suivant différents modes | 4.0 |
Chaîne de caractères | escapeHtml | Encoder les chaînes à l'aide de l'encodage HTML | 2.3.3 |
Chaîne de caractères | escapeOroRegexpChars | citer les méta-caractères utilisés par l'expression régulière ORO | 2.9 |
Chaîne de caractères | escapeXml | Encoder les chaînes à l'aide de l'encodage XML | 3.2 |
Chaîne de caractères | regexFunction | analyser la réponse précédente à l'aide d'une expression régulière | 1 FOIS |
Chaîne de caractères | uneévasion | Traiter les chaînes contenant des échappements Java (par exemple \n & \t) | 2.3.3 |
Chaîne de caractères | unescapeHtml | Décoder les chaînes encodées en HTML | 2.3.3 |
Chaîne de caractères | urldecode | Décoder une chaîne application/x-www-form-urlencoded | 2.10 |
Chaîne de caractères | code d'URL | Encoder une chaîne en une chaîne application/x-www-form-urlencoded | 2.10 |
Chaîne de caractères | TestPlanName | Renvoie le nom du plan de test actuel | 2.6 |
20.1 Que peuvent faire les fonctions ¶
Il existe deux types de fonctions : les valeurs statiques (ou variables) définies par l'utilisateur et les 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 pour exécution. Ce remplacement a lieu une fois au début de l'exécution du test. Cela pourrait être utilisé pour remplacer le champ DOMAIN de toutes les requêtes HTTP, par exemple - ce qui simplifie la modification d'un test pour cibler un serveur différent avec le même test.
Notez que les variables ne peuvent actuellement pas être imbriquées ; c'est-à -dire que ${Var${N}} ne fonctionne pas. La fonction __V (variable) peut être utilisée pour cela : ${__V(Var${N})} . Vous pouvez également utiliser ${__BeanShell(vars.get("Var${N}")} .
Ce type de remplacement est possible sans fonctions, mais était moins pratique et moins intuitif. Cela obligeait les utilisateurs à créer des éléments de configuration par défaut qui rempliraient les valeurs vides des échantillonneurs. Les variables permettent de ne remplacer qu'une partie d'une valeur donnée, pas seulement de remplir des valeurs vides.
Avec les fonctions intégrées, les utilisateurs peuvent calculer de nouvelles valeurs au moment de l'exécution en fonction des données de réponse précédentes, du thread dans lequel se trouve la fonction, de l'heure et de nombreuses autres sources. Ces valeurs sont générées pour chaque demande tout au long du test.
20.2 Où peut-on utiliser des fonctions et des variables ? ¶
Les fonctions et les variables peuvent être écrites dans n'importe quel champ de n'importe quel composant de test (à l'exception du TestPlan - voir ci-dessous). Certains champs n'autorisent pas les chaînes aléatoires car ils attendent des nombres et n'accepteront donc pas de fonction. Cependant, la plupart des champs autoriseront les fonctions.
Les fonctions utilisées sur le plan de test ont certaines restrictions. Les variables de thread JMeter n'auront pas été entièrement configurées lorsque les fonctions seront 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, donc split () et regex () et les fonctions d'évaluation de variable ne seront pas ça marche. La fonction threadNum() ne fonctionnera pas (et n'a pas de sens au niveau du plan de test). Les fonctions suivantes devraient fonctionner correctement sur le plan de test :
- inSum
- somme longue
- nom de la machine
- Coquille de haricot
- sensationnel
- JavaScript
- jexl2/jexl3
- Aléatoire
- temps
- fonctions de propriété
- fonctions de journalisation
Les éléments de configuration sont traités par un thread séparé. Par conséquent, les fonctions telles que __threadNum ne fonctionnent pas correctement dans des éléments tels que les variables définies par l'utilisateur. Notez également que les variables définies dans un élément UDV ne sont pas disponibles tant que l'élément n'a pas été traité.
SELECT élément de la table où name='${VAR}'ne pas
SELECT élément de la table où nom=${VAR}(sauf si VAR lui-même contient les guillemets)
20.3 Comment référencer des variables et des fonctions ¶
Le référencement d'une variable dans un élément de test se fait en encadrant 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 valeur utilisateur * . Certaines fonctions prennent des arguments pour les configurer, et ceux-ci vont entre parenthèses, délimités par des virgules. Si la fonction ne prend aucun argument, les parenthèses peuvent être omises.
Les valeurs d'argument qui contiennent elles-mêmes des virgules doivent être échappées si nécessaire. Si vous devez inclure une virgule dans la valeur de votre paramètre, échappez-la comme suit : ' \, '. Cela s'applique par exemple aux fonctions de script - Javascript, Beanshell, Jexl, groovy - où il est nécessaire d'échapper les virgules qui peuvent être nécessaires dans les appels de méthode de script - par exemple
${__BeanShell(vars.put("nom"\,"valeur"))}
Vous pouvez également définir votre script en tant que variable, par exemple sur le plan de test :
SCRIPT vars.put("nom","valeur")Le script peut alors être référencé comme suit :
${__BeanShell(${SCRIPT})}Il n'est pas nécessaire d'échapper des virgules dans la variable SCRIPT car l'appel de fonction est analysé avant que la variable ne soit remplacée par sa valeur. Cela fonctionne bien en conjonction avec les échantillonneurs JSR223 ou BeanShell, car ceux-ci peuvent être utilisés pour tester les scripts Javascript, Jexl et BeanShell.
Les fonctions peuvent référencer des variables et d'autres fonctions, par exemple ${__XPath(${__P(xpath.file),${XPATH})} utilisera la propriété " xpath.file " comme nom de fichier et le contenu de la variable XPATH comme l'expression à rechercher.
JMeter fournit un outil pour vous aider à construire des appels de fonction pour diverses fonctions intégrées, que vous pouvez ensuite copier-coller. Il n'échappera pas automatiquement les valeurs pour vous, car les fonctions peuvent être des paramètres d'autres fonctions, et vous ne devez échapper que les valeurs que vous souhaitez utiliser comme littérales.
La valeur d'une variable ou d'une fonction peut être signalée à l'aide de la fonction __logn() . La référence de fonction __logn() peut être utilisée n'importe où dans le plan de test une fois la variable définie. Alternativement, l'échantillonneur Java Request peut être utilisé pour créer un échantillon contenant des références de variable ; la sortie sera affichée dans l'écouteur approprié. Notez qu'il existe un échantillonneur de débogage qui peut être utilisé pour afficher les valeurs des variables, etc. dans l'écouteur de l'arborescence.
20.4 La boîte de dialogue Function Helper ¶
La boîte de dialogue Function Helper est disponible dans le menu Outils de JMeter.
À l'aide de l'assistant de fonction, vous pouvez sélectionner une fonction dans le menu déroulant et attribuer 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 pour que vous puissiez la copier-coller dans votre plan de test où vous le souhaitez.
20.5 Fonctions ¶
__regexFonction ¶
La fonction Regex est utilisée pour analyser la réponse précédente (ou la valeur d'une variable) à l'aide de n'importe quelle expression régulière (fournie par l'utilisateur). La fonction renvoie la chaîne de modèle avec les valeurs variables renseignées.
Le __regexFunction peut également stocker des valeurs pour une utilisation future. Dans le sixième paramètre, vous pouvez spécifier un nom de référence. Après l'exécution de cette fonction, les mêmes valeurs peuvent être récupérées ultérieurement à l'aide de la syntaxe des valeurs définies par l'utilisateur. Par exemple, si vous saisissez " refName " comme sixième paramètre, vous pourrez utiliser :
- ${refName} pour faire référence au résultat calculé du deuxième paramètre ("Modèle pour la chaîne de remplacement") analysé par cette fonction
- ${refName_g0} pour faire référence à la correspondance entière analysée par cette fonction.
- ${refName_g1} pour faire référence au premier groupe analysé par cette fonction.
- ${refName_g#} pour faire référence au n ième groupe analysé par cette fonction.
- ${refName_matchNr} pour faire référence au nombre de groupes trouvés par cette fonction.
Paramètres ¶
- Un entier - Indique à JMeter d'utiliser cette correspondance. ' 1 ' pour la première correspondance trouvée, ' 2 ' pour la seconde, etc.
- RAND - Dit à JMeter de choisir une correspondance au hasard.
- ALL - Indique à JMeter d'utiliser toutes les correspondances et de créer une chaîne de modèle pour chacune, puis de les ajouter toutes ensemble. Cette option est peu utilisée.
- Un nombre flottant entre 0 et 1 - indique à JMeter de trouver la X ème correspondance en utilisant la formule : (number_of_matches_found * float_number) arrondi à l'entier le plus proche.
Les valeurs stockées sont ${refName} (la chaîne de modèle de remplacement) et ${refName_g#} où " # " est le numéro de groupe de l'expression régulière (" 0 " peut être utilisé pour faire référence à la correspondance entière).
__compteur ¶
Le compteur génère un nouveau numéro à chaque appel, en commençant par 1 et en incrémentant de +1 à chaque fois. Le compteur peut être configuré pour séparer les valeurs de chaque utilisateur simulé ou pour utiliser le même compteur pour tous les utilisateurs. Si les valeurs de chaque utilisateur sont incrémentées séparément, cela revient à compter le nombre d'itérations dans le plan de test. Un compteur global revient à compter le nombre de fois que cette requête a été exécutée.
Le compteur utilise une variable entière pour contenir le décompte, qui a donc un maximum de 2 147 483 647.
Les instances de la fonction compteur sont complètement indépendantes. Le compteur global - " FALSE " - est maintenu séparément par chaque instance de compteur.
Plusieurs appels de fonction __counter dans la même itération n'incrémenteront pas davantage la valeur.
Si vous souhaitez avoir un décompte qui s'incrémente pour chaque échantillon, utilisez la fonction dans un préprocesseur tel que Paramètres utilisateur .
Paramètres ¶
Les valeurs stockées sont de la forme ${refName} . Cela vous permet de garder un compteur et de vous référer à sa valeur à plusieurs endroits.
__threadNum ¶
La fonction de numéro de thread renvoie simplement le numéro du thread en cours d'exécution. Ces numéros ne sont uniques que localement par rapport à leur groupe de threads, ce qui signifie que le thread n° 1 dans un groupe de threads est indiscernable du thread n° 1 dans un autre groupe de threads, du point de vue de cette fonction.
ctx.getThreadNum()
Il n'y a pas d'arguments pour cette fonction.
Exemple d'utilisation :
${__threadNum}renvoie un nombre compris entre 1 et le nombre maximal de threads en cours d'exécution configurés dans le groupe de threads contenant
__threadGroupName ¶
La fonction de nom de groupe de threads renvoie simplement le nom du groupe de threads en cours d'exécution.
Il n'y a pas d'arguments pour cette fonction.
Exemple d'utilisation :
${__threadGroupName}
__intSum ¶
La fonction intSum peut être utilisée pour calculer la somme de deux ou plusieurs valeurs entières.
Paramètres ¶
Exemples:
${__intSum(2,5,MAVAR)}renverra 7 (2+5) et stockera le résultat dans la variable MYVAR. Donc ${MYVAR} sera égal à 7.
${__intSum(2,5,7)}renverra 14 (2+5+7) et stockera le résultat dans la variable MYVAR.
${__intSum(1,2,5,${MAVAR})}renverra 16 si la valeur de MYVAR est égale à 8, 1+2+5+${MYVAR})
__longSum ¶
La fonction longSum peut être utilisée pour calculer la somme de deux valeurs longues ou plus, utilisez-la au lieu de __intSum chaque fois que vous savez que vos valeurs ne seront pas dans l'intervalle -2147483648 à 2147483647.
Paramètres ¶
Exemples:
${__longSum(2,5,MAVAR)}renverra 7 (2+5) et stockera le résultat dans la variable MYVAR. Donc ${MYVAR} sera égal à 7.
${__longSum(2,5,7)}renverra 14 (2+5+7) et stockera le résultat dans la variable MYVAR.
${__longSum(1,2,5,${MYVAR})}renverra 16 si la valeur de MYVAR est égale à 8, 1+2+5+${MYVAR})
__StringFromFile ¶
La fonction StringFromFile peut être utilisée pour lire des chaînes à partir d'un fichier texte. Ceci est utile pour exécuter des tests qui nécessitent beaucoup de données variables. Par exemple, lors du test d'une application bancaire, des centaines ou des milliers de numéros de compte différents peuvent être nécessaires.
Voir également l' élément de test CSV Data Set Config qui peut être plus facile à utiliser. Cependant, cela ne prend actuellement pas en charge plusieurs fichiers d'entrée.
Chaque fois qu'il est appelé, il lit la ligne suivante du fichier. Tous les threads partagent la même instance, donc différents threads obtiendront des lignes différentes. Lorsque la fin du fichier est atteinte, il reprendra la lecture depuis le début, à moins que le nombre maximal de boucles n'ait été atteint. S'il existe plusieurs références à la fonction dans un script de test, chacune ouvrira le fichier indépendamment, même si les noms de fichiers sont identiques. [Si la valeur doit être réutilisée ailleurs, utilisez des noms de variable différents pour chaque appel de fonction.]
Si une erreur se produit lors de l'ouverture ou de la lecture du fichier, alors la fonction renvoie la chaîne " **ERR** "
Paramètres ¶
Le paramètre de nom de fichier est résolu lorsque le fichier est ouvert ou rouvert.
Le paramètre de nom de référence (s'il est fourni) est résolu à chaque exécution de la fonction.
Utilisation des numéros de séquence :
Lors de l'utilisation des numéros de séquence facultatifs, le nom du chemin est utilisé comme chaîne de format pour java.text.DecimalFormat . Le numéro de séquence actuel est transmis comme seul paramètre. Si le numéro de début facultatif n'est pas spécifié, le nom du chemin est utilisé tel quel. Les séquences de formatage utiles sont :
- #
- insérez le numéro, sans zéro ni espace en tête
- 000
- insérer le nombre emballé à trois chiffres avec des zéros en tête si nécessaire
- pin#'.'dat
- Génèrera les chiffres sans zéros non significatifs et traitera le point littéralement comme
pin1.dat , …, pin9.dat , pin10.dat , …, pin9999.dat - pin000'.'dat
- Générera des zéros non significatifs tout en gardant le point. Lorsque les nombres commencent à avoir plus de chiffres que les trois chiffres suggérés par ce format, la séquence utilisera plus de chiffres comme on peut le voir dans
pin001.dat , … pin099.dat , …, pin999.dat , …, pin9999.dat - pin'.'dat#
- Ajoute des chiffres sans zéros non significatifs tout en gardant le point et génère
pin.dat1 , …, pin.dat9 , …, pin.dat999
Si plus de chiffres sont nécessaires qu'il n'y a de caractères de formatage, le nombre sera développé si nécessaire.
Pour empêcher l'interprétation d'un caractère de formatage, placez-le entre guillemets simples. Notez que " . " est un caractère de mise en forme et doit être entouré de guillemets simples
(bien que #. et 000. fonctionnent comme prévu dans les paramètres régionaux où le point décimal est également " . ")
Dans d'autres paramètres régionaux (par exemple fr ), le point décimal est " , " - ce qui signifie que " #. " devient " nnn, ".
Voir la documentation de DecimalFormat pour plus de détails.
Si le nom du chemin ne contient aucun caractère de formatage spécial, le numéro de séquence actuel sera ajouté au nom, sinon le numéro sera inséré conformément aux instructions de formatage.
Si le numéro de séquence de début est omis et que le numéro de séquence de fin est spécifié, le numéro de séquence est interprété comme un nombre de boucles et le fichier sera utilisé au plus " fin " fois. Dans ce cas, le nom du fichier n'est pas formaté.
${__StringFromFile(PIN#'.'DAT,,1,2)} - lit PIN1.DAT , PIN2.DAT
${__StringFromFile(PIN.DAT,,,2)} - lit PIN.DAT deux fois
Notez que le " . " dans PIN.DAT ci-dessus devraitne pas être cité. Dans ce cas, le numéro de début est omis, de sorte que le nom du fichier est utilisé exactement tel quel.
__machineName ¶
La fonction machineName renvoie le nom d'hôte local. Ceci utilise la méthode Java InetAddress.getLocalHost() et la transmet à getHostName()
Paramètres ¶
Exemples:
${__machineName()}renverra le nom d'hôte de la machine
${__machineName}renverra le nom d'hôte de la machine
__machineIP ¶
La fonction machineIP renvoie l'adresse IP locale. Ceci utilise la méthode Java InetAddress.getLocalHost() et la transmet à getHostAddress()
Paramètres ¶
Exemples:
${__machineIP()}renverra l'adresse IP de la machine
${__machineIP}renverra l'adresse IP de la machine
__javaScript ¶
La fonction javaScript exécute un morceau de code JavaScript (pas Java !) et renvoie sa valeur
La fonction JMeter Javascript appelle un interpréteur JavaScript autonome. Javascript est utilisé comme langage de script, vous pouvez donc faire des calculs, etc.
Pour le moteur Rhino, veuillez consulter Présentation de Mozilla Rhino
Les variables suivantes sont mises à la disposition du script :
- log - le Logger pour la fonction
- ctx - Objet JMeterContext
- vars - objet JMeterVariables
- threadName - Chaîne contenant le nom du thread actuel
- sampler - objet Sampler actuel (le cas échéant)
- sampleResult - objet SampleResult précédent (le cas échéant)
- accessoires - objet JMeterProperties (classe java.util.Properties )
Rhinoscript permet l'accès aux méthodes statiques via son objet Packages. Voir la documentation sur les scripts Java . Par exemple on peut accéder aux méthodes statiques JMeterContextService ainsi : Java.type("org.apache.jmeter.threads.JMeterContextService").getTotalThreads()
Paramètres ¶
- new Date() - renvoie la date et l'heure actuelles
- Math.floor(Math.random()*(${maxRandom}+1)) - un nombre aléatoire entre 0 et la variable maxRandom
- ${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)) - un nombre aléatoire entre les variables minRandom et maxRandom
- "${VAR}"=="abcd"
${__javaScript('${sp}'.slice(7\,99999))}la virgule après 7 est échappée.
Exemples:
${__javaScript(nouvelle date())}reviendra le samedi 09 janvier 2016 à 16:22:15 GMT+0100 (CET)
${__javaScript(nouvelle date(),MYDATE)}retournera Sam Jan 09 2016 16:22:15 GMT+0100 (CET) et le stockera sous la variable MYDATE
${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}utilisera la variable maxRandom, renverra une valeur aléatoire entre 0 et maxRandom et la stockera dans MYRESULT
${__javaScript(${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)),MYRESULT)}utilisera les variables maxRandom et minRandom , renverra une valeur aléatoire entre maxRandom et minRandom et la stockera sous la variable MYRESULT
${__javaScript("${VAR}"=="abcd",MONRESULTAT)}comparera la valeur de la variable VAR avec abcd , renverra true ou false et stockera le résultat dans MYRESULT
__Aléatoire ¶
La fonction random renvoie un nombre aléatoire qui se situe entre les valeurs min et max données.
Paramètres ¶
Exemples:
${__Aléatoire(0,10)}renverra un nombre aléatoire entre 0 et 10
${__Random(0,10, MAVAR)}renverra un nombre aléatoire entre 0 et 10 et le stockera dans MYVAR . ${MYVAR} contiendra le nombre aléatoire
__RandomDate ¶
La fonction RandomDate renvoie une date aléatoire comprise entre les valeurs de date de début et de date de fin données.
Paramètres ¶
Exemples:
${__RandomDate(,,2050-07-08,,)}renverra une date aléatoire entre maintenant et le 2050-07-08 . Par exemple 2039-06-21
${__RandomDate(jj MM aaaa,,08 07 2050,,)}renverra une date aléatoire avec un format personnalisé comme 04 03 2034
__RandomString ¶
La fonction RandomString renvoie une chaîne aléatoire de longueur en utilisant les caractères dans les caractères à utiliser.
Paramètres ¶
Exemples:
${__Chaîne aléatoire(5)}renverra une chaîne aléatoire de 5 caractères qui peut être lisible ou non
${__RandomString(10,abcdefg)}renverra une chaîne aléatoire de 10 caractères choisis dans l'ensemble abcdefg , comme cdbgdbeebd ou adbfeggfad , …
${__RandomString(6,a12zeczclk, MYVAR)}renverra une chaîne aléatoire de 6 caractères choisis dans un jeu a12zeczclk et stockera le résultat dans MYVAR , MYVAR contiendra une chaîne comme 2z22ak ou z11kce , …
__RandomFromMultipleVars ¶
La fonction RandomFromMultipleVars renvoie une valeur aléatoire basée sur les valeurs de variables fournies par Source Variables .
Les variables peuvent être simples ou multi-valuées car elles peuvent être générées par les extracteurs suivants :- Extracteur de frontière
- Extracteur d'expressions régulières
- Extracteur de sélecteur CSS
- Extracteur JSON
- Extracteur XPath
- Extracteur XPath2
Paramètres ¶
Exemples:
${__RandomFromMultipleVars(val)}renverra une chaîne aléatoire basée sur le contenu de la variable val en tenant compte du fait qu'ils sont multi-valeurs ou non
${__RandomFromMultipleVars(val1|val2)}renverra une chaîne aléatoire basée sur le contenu des variables val1 et val2 en tenant compte du fait qu'elles sont multi-valeurs ou non
${__RandomFromMultipleVars(val1|val2, MYVAR)}renverra une chaîne aléatoire basée sur le contenu des variables val1 et val2 en tenant compte du fait qu'elles sont multi-valeurs ou non et stockera le résultat dans MYVAR
__UUID ¶
La fonction UUID renvoie un identifiant universel pseudo-aléatoire de type 4 (UUID).
Paramètres ¶
Exemples:
${__UUID()}renverra les UUID avec ce format : c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd
__CSVLire ¶
La fonction CSVRead renvoie une chaîne depuis un fichier CSV (cf StringFromFile )
REMARQUE : JMeter prend en charge plusieurs noms de fichiers.
Dans la plupart des cas, le nouvel élément CSV Data Set Config est plus facile à utiliser.
Lorsqu'un nom de fichier est rencontré pour la première fois, le fichier est ouvert et lu dans un tableau interne. Si une ligne vide est détectée, elle est traitée comme une fin de fichier - cela permet d'utiliser des commentaires de fin.
Toutes les références ultérieures au même nom de fichier utilisent le même tableau interne. NB la casse du nom de fichier est importante pour la fonction, même si le système d'exploitation ne s'en soucie pas, donc CSVRead(abc.txt,0) et CSVRead(aBc.txt,0) feraient référence à des tableaux internes différents.
La fonction *ALIAS permet d'ouvrir plusieurs fois le même fichier et permet également des noms de fichiers plus courts.
Chaque thread a son propre pointeur interne vers sa ligne actuelle dans le tableau de fichiers. Lorsqu'un thread se réfère pour la première fois au fichier, il se verra attribuer la ligne libre suivante dans le tableau, de sorte que chaque thread accédera à une ligne différente de tous les autres threads. [Sauf s'il y a plus de threads qu'il n'y a de lignes dans le tableau.]
Paramètres ¶
Par exemple, vous pouvez configurer certaines variables comme suit :
- COL1a ${__CSVRead(random.txt,0)}
- COL2a ${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
- COL1b ${__CSVRead(random.txt,0)}
- COL2b ${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)}
__propriété ¶
La fonction de propriété renvoie la valeur d'une propriété JMeter. Si la valeur de la propriété est introuvable et qu'aucune valeur par défaut n'a été fournie, elle renvoie le nom de la propriété. Lors de la fourniture d'une valeur par défaut, il n'est pas nécessaire de fournir un nom de fonction - le paramètre peut être défini sur null et il sera ignoré.
Par exemple:
- ${__property(user.dir)} - valeur de retour de user.dir
- ${__property(user.dir,UDIR)} - renvoie la valeur de user.dir et enregistre dans UDIR
- ${__property(abcd,ABCD,atod)} - renvoie la valeur de la propriété abcd (ou " atod " si elle n'est pas définie) et l'enregistre dans ABCD
- ${__property(abcd,,atod)} - renvoie la valeur de la propriété abcd (ou " atod " si elle n'est pas définie) mais ne l'enregistre pas
Paramètres ¶
__P ¶
Il s'agit d'une fonction de propriété simplifiée destinée à être utilisée avec des propriétés définies sur la ligne de commande. Contrairement à la fonction __property , il n'y a pas d'option pour enregistrer la valeur dans une variable, et si aucune valeur par défaut n'est fournie, elle est supposée être 1. La valeur 1 a été choisie car elle est valide pour les variables de test courantes telles que les boucles, nombre de threads, montée en puissance, etc.
Par exemple:Définissez la valeur de la propriété :
jmeter -Jgroup1.threads=7 -Jhostname1=www.realhost.eduRécupérer les valeurs :
${__P(group1.threads)} - renvoie la valeur de group1.threads
${__P(group1.loops)} - renvoie la valeur de group1.loops
${__P(hostname,www.dummy.org) } - renvoie la valeur de la propriété hostname ou www.dummy.org si elle n'est pas définie autre part!)
Paramètres ¶
__log ¶
La fonction log enregistre un message et renvoie sa chaîne d'entrée
Paramètres ¶
Les noms de niveau de journalisation OUT et ERR sont utilisés pour diriger la sortie vers System.out et System.err respectivement. Dans ce cas, la sortie est toujours imprimée - elle ne dépend pas du paramètre de journal actuel.
- ${__log(Message)}
- écrit dans le fichier journal sous la forme " … Nom du fil : Message "
- ${__log(Message,OUT)}
- écrit dans la fenêtre de la console
- ${__log(${VAR},,,VAR=)}
- écrit dans le fichier journal sous la forme " … nom du thread VAR=valeur "
__logn ¶
La fonction logn enregistre un message et renvoie la chaîne vide
Paramètres ¶
Les noms de niveau de journalisation OUT et ERR sont utilisés pour diriger la sortie vers System.out et System.err respectivement. Dans ce cas, la sortie est toujours imprimée - elle ne dépend pas du paramètre de journal actuel.
- ${__logn(VAR1=${VAR1},OUT)}
- écrire la valeur de la variable dans la fenêtre de la console
__BeanShell ¶
La fonction BeanShell évalue le script qui lui est transmis et renvoie le résultat.
Pour plus de détails sur l'utilisation de BeanShell, veuillez consulter le site Web de BeanShell à l' adresse http://www.beanshell.org/
Une seule instance d'une fonction peut être appelée à partir de plusieurs threads. Cependant la méthode execute() de la fonction est synchronisée.
Si la propriété " beanshell.function.init " est définie, elle est transmise à l'interpréteur en tant que nom d'un fichier sourcé. Cela peut être utilisé pour définir des méthodes et des variables communes. Il existe un exemple de fichier init dans le répertoire bin : BeanShellFunction.bshrc .
Les variables suivantes sont définies avant l'exécution du script :
- log - le Logger pour la fonction BeanShell (*)
- ctx - Objet JMeterContext
- vars - objet JMeterVariables
- accessoires - objet JMeterProperties (classe java.util.Properties )
- threadName - le threadName (chaîne)
- Sampler - le Sampler actuel , le cas échéant
- SampleResult - le SampleResult actuel , le cas échéant
Paramètres ¶
Exemple:
- ${__BeanShell(123*456)}
- renvoie 56088
- ${__BeanShell(source("fonction.bsh"))}
- traite le script dans function.bsh
__groovy ¶
La fonction __groovy évalue les scripts Apache Groovy qui lui sont transmis et renvoie le résultat.
Si la propriété « groovy.utilities » est définie, elle sera chargée par le ScriptEngine. Cela peut être utilisé pour définir des méthodes et des variables communes. Il existe un exemple de fichier init dans le répertoire bin : utility.groovy .
Les variables suivantes sont définies avant l'exécution du script :
- log - le Logger pour la fonction groovy (*)
- ctx - Objet JMeterContext
- vars - objet JMeterVariables
- accessoires - objet JMeterProperties (classe java.util.Properties )
- threadName - le threadName (chaîne)
- sampler - le Sampler actuel , le cas échéant
- prev - le SampleResult précédent , le cas échéant
- OUT - System.out
(*) signifie que ceci est défini avant que le fichier init, le cas échéant, ne soit traité. D'autres variables varient d'une invocation à l'autre.
Par exemple , ne procédez pas comme suit :
${__groovy("${maVar}".substring(0\,2))}
Imaginez que la variable myVar change à chaque transaction, le Groovy ci-dessus ne peut pas être mis en cache car le script change à chaque fois.
À la place, procédez comme suit, qui peut être mis en cache :
${__groovy(vars.get("myVar").substring(0\,2))}
Paramètres ¶
Exemple:
-
${__groovy(123*456)}
- renvoie 56088
-
${__groovy(vars.get("myVar").substring(0\,2))}
- Si la valeur de var est JMeter , elle renverra JM lors de l'exécution de String.substring(0,2) . Notez que , a été échappé à \,
__split ¶
La fonction split divise la chaîne qui lui est transmise en fonction du délimiteur et renvoie la chaîne d'origine. Si des délimiteurs sont adjacents, " ? " est renvoyé comme valeur. Les chaînes fractionnées sont renvoyées dans les variables ${VAR_1} , ${VAR_2} etc. Le nombre de variables est renvoyé dans ${VAR_n} . Un délimiteur de fin est traité comme une variable manquante et " ? " est renvoyé. De plus, pour lui permettre de mieux fonctionner avec le contrôleur ForEach, __split supprime désormais la première variable inutilisée au cas où elle aurait été définie par un fractionnement précédent.
Exemple :Définissez VAR =" a||c| " dans le plan de test.
${__split(${VAR},VAR,|)}
Cela renverra le contenu de VAR , c'est-à-dire " a||c| " et définira les variables suivantes :
VAR_n = 4
VAR_1 = a
VAR_2 = ?
VAR_3 = c
VAR_4 = ?
VAR_5 = nul
Paramètres ¶
__XPath ¶
La fonction XPath lit un fichier XML et correspond à XPath. Chaque fois que la fonction est appelée, la prochaine correspondance sera renvoyée. À la fin du fichier, il reviendra au début. Si aucun nœud ne correspond, la fonction renverra la chaîne vide et un message d'avertissement sera écrit dans le fichier journal JMeter.
${__XPath(/chemin/vers/build.xml, //cible/@nom)}Cela correspondra à toutes les cibles dans build.xml et renverra le contenu de l'attribut de nom suivant
Paramètres ¶
__setProperty ¶
La fonction setProperty définit la valeur d'une propriété JMeter. La valeur de retour par défaut de la fonction est la chaîne vide, de sorte que l'appel de fonction peut être utilisé partout où les fonctions sont valides.
La valeur d'origine peut être renvoyée en réglant le 3ème paramètre facultatif sur " true ".
Les propriétés sont globales à JMeter, elles peuvent donc être utilisées pour communiquer entre les threads et les groupes de threads
Paramètres ¶
__heure ¶
La fonction time renvoie l'heure actuelle dans différents formats.
Paramètres ¶
Si la chaîne de format est omise, la fonction renvoie l'heure actuelle en millisecondes depuis l'époque. Si le format correspond à " /ddd " (où ddd sont des chiffres décimaux), la fonction renvoie l'heure actuelle en millisecondes divisée par la valeur de ddd . Par exemple, " /1000 " renvoie l'heure actuelle en secondes depuis l'époque. Sinon, l'heure actuelle est passée à SimpleDateFormat. Les alias abrégés suivants sont fournis :
- AMJ = aaaaMMjj
- HMS = HHmmss
- YMDHMS = aaaaMMjj-HHmmss
- USER1 = tout ce qui se trouve dans la propriété JMeter time.USER1
- USER2 = tout ce qui se trouve dans la propriété JMeter time.USER2
Les valeurs par défaut peuvent être modifiées en définissant la propriété JMeter appropriée, par exemple time.YMD=yyMMdd
${__heure(jj/MM/aaaa,)}reviendra le 21/01/2018 si exécuté le 21 janvier 2018
${__time(YMD,)}renverra 20180121 si exécuté le 21 janvier 2018
${__time()}renverra le temps en millis 1516540541624
__jexl2 ¶
La fonction jexl renvoie le résultat de l'évaluation d'une expression Commons JEXL . Voir les liens ci-dessous pour plus d'informations sur les expressions JEXL.
La fonction __jexl2 utilise Commons JEXL 2
Paramètres ¶
Les variables suivantes sont mises à la disposition du script :
- log - le Logger pour la fonction
- ctx - Objet JMeterContext
- vars - objet JMeterVariables
- accessoires - objet JMeterProperties (classe java.util.Properties )
- threadName - Chaîne contenant le nom du thread actuel
- sampler - objet Sampler actuel (le cas échéant)
- sampleResult - objet SampleResult précédent (le cas échéant)
- OUT - System.out - par exemple OUT.println("message")
Jexl peut aussi créer des classes et y appeler des méthodes, par exemple :
Systemclass=log.class.forName("java.lang.System"); now=Systemclass.currentTimeMillis();Notez que la documentation Jexl sur le site Web suggère à tort que " div " effectue une division entière. En fait, " div " et " / " effectuent tous deux une division normale. On peut obtenir le même effet comme suit :
je= 5 / 2 ; i.intValue(); // ou utilisez i.longValue()
__jexl3 ¶
La fonction jexl renvoie le résultat de l'évaluation d'une expression Commons JEXL . Voir les liens ci-dessous pour plus d'informations sur les expressions JEXL.
La fonction __jexl3 utilise Commons JEXL 3
Paramètres ¶
Les variables suivantes sont mises à la disposition du script :
- log - le Logger pour la fonction
- ctx - Objet JMeterContext
- vars - objet JMeterVariables
- accessoires - objet JMeterProperties (classe java.util.Properties )
- threadName - Chaîne contenant le nom du thread actuel
- sampler - objet Sampler actuel (le cas échéant)
- sampleResult - objet SampleResult précédent (le cas échéant)
- OUT - System.out - par exemple OUT.println("message")
Jexl peut aussi créer des classes et y appeler des méthodes, par exemple :
Systemclass=log.class.forName("java.lang.System"); now=Systemclass.currentTimeMillis();Notez que la documentation Jexl sur le site Web suggère à tort que " div " effectue une division entière. En fait, " div " et " / " effectuent tous deux une division normale. On peut obtenir le même effet comme suit :
je= 5 / 2 ; i.intValue(); // ou utilisez i.longValue()
__V ¶
La fonction V (variable) renvoie le résultat de l'évaluation d'une expression de nom de variable. Cela peut être utilisé pour évaluer les références de variables imbriquées (qui ne sont actuellement pas prises en charge).
Par exemple, si l'on a les variables A1 , A2 et N = 1 :
- ${A1} - fonctionne bien
- ${A${N}} - ne fonctionne pas (référence de variable imbriquée)
- ${__V(A${N})} - fonctionne bien. A${N} devient A1 , et la fonction __V renvoie la valeur de A1
Paramètres ¶
__evalVar ¶
La fonction evalVar renvoie le résultat de l'évaluation d'une expression stockée dans une variable.
Cela permet de lire une chaîne à partir d'un fichier et de traiter toutes les références de variables qu'il contient. Par exemple, si la variable " requête " contient " select ${column} from ${table} " et " colonne " et " table " contiennent " nom " et " clients ", alors ${__evalVar(query)} sera évalué comme " sélectionner le nom des clients ".
__eval ¶
La fonction eval renvoie le résultat de l'évaluation d'une expression de chaîne.
Cela permet d'interpoler les références de variable et de fonction dans une chaîne qui est stockée dans une variable. Par exemple, étant donné les variables suivantes :
- nom = Smith
- colonne = âge
- table = anniversaires
- SQL = sélectionnez ${column} à partir de ${table} où name='${name}'
Cela peut être utilisé en conjonction avec CSV Dataset, par exemple où les instructions SQL et les valeurs sont définies dans le fichier de données.
__char ¶
La fonction char renvoie le résultat de l'évaluation d'une liste de nombres sous forme de caractères Unicode. Voir aussi __unescape() , ci-dessous.
Cela permet d'ajouter des valeurs de caractères arbitraires dans les champs.
Paramètres ¶
Exemples :
${__char(13,10)} = ${__char(0xD,0xA)} = ${__char(015,012)} = CRLF
${__char(165)} = ¥ (yen)
__unescape ¶
La fonction unescape renvoie le résultat de l'évaluation d'une chaîne Java échappée. Voir aussi __char() ci-dessus.
Cela permet d'ajouter des caractères à des champs qui sont autrement délicats (voire impossibles) à définir via l'interface graphique.
Paramètres ¶
Exemples :
${__unescape(\r\n)} = CRLF
${__unescape(1\t2)} = 1 [tab] 2
__unescapeHtml ¶
Fonction permettant de remplacer une chaîne contenant des échappements d'entités HTML par une chaîne contenant les caractères Unicode réels correspondant aux échappements. Prend en charge les entités HTML 4.0.
Par exemple, la chaîne
${__unescapeHtml(<Français>)}renverra <English> .
Si une entité n'est pas reconnue, elle est laissée seule et insérée textuellement dans la chaîne de résultat. par exemple ${__unescapeHtml(>&zzzz;x)} renverra >&zzzz;x .
Utilise StringEscapeUtils#unescapeHtml(String) de Commons Lang.
Paramètres ¶
__escapeHtml ¶
Fonction qui échappe les caractères d'une chaîne à l'aide d'entités HTML. Prend en charge les entités HTML 4.0.
Par exemple,
${__escapeHtml("pain" & "beurre")}retour : "pain" & "beurre" .
Utilise StringEscapeUtils#escapeHtml(String) de Commons Lang.
__urldecode ¶
Fonction pour décoder une chaîne application/x-www-form-urlencoded . Remarque : utilisez UTF-8 comme schéma de codage.
Par exemple, la chaîne
${__urldecode(Word+%22school%22+is+%22%C3%A9cole%22+in+french)}renvoie Le mot "school" est "école" en français .
Utilise la classe Java URLDecoder .
Paramètres ¶
__urlencode ¶
Fonction pour encoder une chaîne en une chaîne application/x-www-form-urlencoded .
Par exemple, la chaîne
${__urlencode(Word "school" est "école" en français)}renvoie Word+%22school%22+is+%22%C3%A9cole%22+in+french .
Utilise la classe Java URLEncoder .
Paramètres ¶
__FichierVersChaîne ¶
La fonction FileToString peut être utilisée pour lire un fichier entier. Chaque fois qu'il est appelé, il lit le fichier entier.
Si une erreur se produit lors de l'ouverture ou de la lecture du fichier, alors la fonction renvoie la chaîne " **ERR** "
Paramètres ¶
Les paramètres de nom de fichier, d'encodage et de nom de référence sont résolus à chaque exécution de la fonction.
__samplerName ¶
La fonction samplerName renvoie le nom (c'est-à-dire l'étiquette) de l'échantillonneur courant.
La fonction ne fonctionne pas dans les éléments Test qui n'ont pas d'échantillonneur associé. Par exemple, le plan de test. Les éléments de configuration n'ont pas non plus d'échantillonneur associé. Cependant, certains éléments de configuration sont référencés directement par les échantillonneurs, tels que le gestionnaire d'en-tête HTTP et le gestionnaire de cookies HTTP, et dans ce cas, les fonctions sont résolues dans le contexte de l'échantillonneur HTTP. Les pré-processeurs, post-processeurs et assertions ont toujours un échantillonneur associé.
Exemple:
${__samplerName()}
Paramètres ¶
__TestPlanName ¶
La fonction TestPlanName renvoie le nom du plan de test courant (peut être utilisée dans Inclure des plans pour connaître le nom du plan de test appelant).
Exemple:
${__TestPlanName}renverra le nom de fichier de votre plan de test, par exemple si le plan est dans un fichier nommé Demo.jmx, il renverra " Demo.jmx
__escapeOroRegexpChars ¶
Fonction qui échappe aux métacaractères ORO Regexp, c'est l'équivalent de \Q \E dans Java Regexp Engine.
Par exemple,
${__escapeOroRegexpChars([^"].+?,)}renvoie : \[\^\"\]\.\+\? .
Utilise Perl5Compiler#quotemeta(String) d'ORO.
Paramètres ¶
__escapeXml ¶
Fonction qui échappe les caractères d'une chaîne à l'aide d'entités XML 1.0.
Par exemple,
${__escapeXml("pain" & 'beurre')}renvoie : "pain" & 'beurre' .
Utilise StringEscapeUtils#escapeXml10(String) de Commons Lang.
__timeShift ¶
La fonction timeShift renvoie une date dans le format donné avec le nombre spécifié de secondes, minutes, heures, jours ou mois ajoutés
Paramètres ¶
- PT20.345S analyse en 20,345 secondes
- PT15M analyse en 15 minutes
- PT10H analyse comme 10 heures
- P2D analyse en 2 jours
- -P6H3M analyse comme -6 heures et -3 minutes
Exemples:
${__timeShift(jj/MM/aaaa,21/01/2018,P2D,,)}retour 23/01/2018
${__timeShift(jj MMMM aaaa,21 février 2018,P2D,fr_FR,)}retours 23 février 2018
__digérer ¶
La fonction digest renvoie une valeur cryptée dans l'algorithme de hachage spécifique avec le sel facultatif, les majuscules et le nom de la variable.
Paramètres ¶
- MD2
- MD5
- SHA-1
- SHA-224
- SHA-256
- SHA-384
- SHA-512
Exemples:
${__digest(MD5,Errare humanum est,,,)}renvoie c49f00b92667a35c63708933384papa52
${__digest(SHA-256,Felix qui potuit rerum cognoscere causas,mysalt,,)}renvoie a3bc6900fe2b2fc5fa8a601a4a84e27a079bf2c581d485009bc5c00516729ac7
__dateTimeConvert ¶
La fonction __dateTimeConvert convertit une date au format source en un format cible stockant éventuellement le résultat dans le nom de la variable.
Paramètres ¶
Exemple:
${__dateTimeConvert(01212018,MMjjaaa,jj/MM/aaaa,)}retour 21/01/2018
Avec la valeur de temps d'époque : 1526574881000,
${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}renvoie 17/05/2018 16:34 en heure UTC (-Duser.timezone=GMT)
__isPropDefined ¶
La fonction __isPropDefined renvoie true si la propriété existe ou false sinon.
Paramètres ¶
Exemple:
${__isPropDefined(START.HMS)}reviendra vrai
__isVarDefined ¶
La fonction __isVarDefined renvoie true si la variable existe ou false sinon.
Paramètres ¶
Exemple:
${__isVarDefined(JMeterThread.last_sample_ok)}reviendra vrai
__changeCase ¶
La fonction de changement de casse renvoie une valeur de chaîne dont la casse a été modifiée selon un mode spécifique. Le résultat peut éventuellement être enregistré dans une variable JMeter.
Paramètres ¶
- UPPER résultat comme AB-CD EF
- Résultat INFÉRIEUR comme ab-cd ed
- MAJUSCULES résultat comme Ab-CD eF
Exemples:
${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}reviendra AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL
${__changeCase(LABOR OMNIA VINCIT IMPROBUS,LOWER,)}reviendra du travail omnia vincit improbus
${__changeCase(omnibus viis romam pervenitur,CAPITALISE,)}reviendra Omnibus viis romam pervenitur
__ChaîneVersFichier ¶
La fonction __StringToFile peut être utilisée pour écrire une chaîne dans un fichier. Chaque fois qu'il est appelé, il écrit une chaîne dans le fichier en l'ajoutant ou en l'écrasant.
La valeur de retour par défaut de la fonction est la chaîne vide
Paramètres ¶
Si vous devez insérer un saut de ligne dans votre contenu, utilisez \n dans votre chaîne.
20.6 Variables prédéfinies ¶
La plupart des variables sont définies en appelant des fonctions ou par des éléments de test tels que les variables définies par l'utilisateur ; auquel cas l'utilisateur a un contrôle total sur le nom de variable utilisé. Cependant certaines variables sont définies en interne par JMeter. Ceux-ci sont énumérés ci-dessous.
- COOKIE_cookiename - contient la valeur du cookie (voir HTTP Cookie Manager )
- JMeterThread.last_sample_ok - si oui ou non le dernier échantillon était OK - true / false . Remarque : ceci est mis à jour après l'exécution des PostProcessors et des Assertions.
- Variables START (voir section suivante)
20.6 Propriétés prédéfinies ¶
L'ensemble des propriétés JMeter est initialisé à partir des propriétés système définies au démarrage de JMeter ; des propriétés JMeter supplémentaires sont définies dans jmeter.properties , user.properties ou sur la ligne de commande.
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 le même nom.
- START.MS - Heure de démarrage de JMeter en millisecondes
- START.YMD - Heure de début de JMeter au format aaaaMMjj
- START.HMS - Heure de début de JMeter en tant que HHmmss
- TESTSTART.MS - heure de début du test en millisecondes
Veuillez noter que les variables/propriétés START représentent l'heure de démarrage de JMeter, et non l'heure de début du test. Ils sont principalement destinés à être utilisés dans les noms de fichiers, etc.