Référence de variable imbriquée JMeter avec la variable de résultatsseT JDBC et la variable de comptoir
-
21-12-2019 - |
Question
Je dois interroger une base de données MySQL pour une liste de sites et de sites. J'ai spécifié ces noms dans le champ Nom de la variable de la demande de JDBC.
Puis j'ai créé un contrôleur logique de Foreach pour parcourir le site SiteRlS $ {SiteurL_1} jusqu'à ce que le dernier enregistrement du résultat tel quel:
Input Variable Prefix: siteURL
Start Index: 0
End Index: 40
Output Variable Name: newSiteURL
Puis j'utilise cela dans le champ de chemin de la requête HTTP comme suit:
${newSiteURL}
Cela fonctionne bien et les demandes HTTP traversent.
Maintenant, je veux nommer correctement les demandes HTTP afin qu'elles soient mieux indexées. Pour cela, j'ai décidé d'utiliser le champ SiteID à partir du jeu de résultats.
Pour ce faire, j'ai créé une variable de compteur en tant que telle:
Start: 1
Increment: 1
Maximum: 40
Reference Name: siteIndex
Maintenant, pour obtenir le site du SITEID à partir du salon des résultats dans la demande HTTP correspondante, j'ai édité le champ Nom de la demande HTTP à ceci:
${siteID_"({siteIndex})"}
Mais mes demandes http dans l'arborescence des résultats de la vue se retrouvent toujours comme suit:
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
${siteID_"({siteIndex})"}
...
Et pas le site réel pour le site correspondantL dans la demande HTTP comme:
21231
12315
21654
64574
76876
...
La solution
Vous devez changer ce bit:
${siteID_"({siteIndex})"}
à
${__V(siteID_${siteIndex})}
Explication:
Selon __V Fonction Documentation
Par exemple, si l'on a des variables A1, A2 et N= 1:
$ {A1} - fonctionne ok
$ {A $ {n}} - ne fonctionne pas (référence de variable imbriquée)
$ {__ v (a $ {n})} - fonctionne ok.Un $ {n} devient A1 et la fonction __v renvoie la valeur de A1
voir Utilisation des fonctions JMeter Série postale pour plus d'exemples surComment faire effectuer des choses avec des fonctions de JMeter utiles.