Comment utiliser ForEach Controller dans JMeter

ForEach Controller dans Jmeter parcourt un tableau de variables.

Dans ce didacticiel JMeter, nous utiliserons le contrôleur ForEach pour parcourir un tableau JSON.

Il y a des moments où nous devons analyser une réponse et en extraire certaines informations. Par exemple, lors du test d'une API, nous pourrions obtenir une réponse JSON qui pourrait contenir des tableaux JSON.


Ensuite, nous devons parcourir le tableau et pour chaque élément effectuer une action. Dans JMeter, nous pouvons utiliser le contrôleur ForEach pour parcourir le tableau JSON.



Comment utiliser JMeter ForEach Controller

Dans cet exemple, nous allons faire une requête GET à une ressource qui renvoie une réponse JSON.


La réponse contient un Déployer d'objets JSON.

Pour chaque objet, nous devons extraire l'URL que nous pouvons faire via JSONPath.


Le JSONPath pour obtenir toutes les URL de la réponse ci-dessus est $.[*].url. Une fois que nous analysons la réponse JSON et extrayons les URL, nous avons alors un tableau de chaînes, essentiellement les URL.

Nous sauvegardons ce tableau dans une variable appelée url_array

Supposons maintenant que pour chaque élément du tableau String, nous souhaitons faire une requête à l'URL. Dans JMeter, cela se fait en utilisant le contrôleur ForEach.


Pour ajouter le contrôleur ForEach à votre plan de test, cliquez avec le bouton droit sur Groupe de threads> Ajouter> Contrôleur logique> Contrôleur ForEach

Le contrôleur ForEach nécessite deux paramètres:

  • Préfixe de variable d'entrée
  • Nom de la variable de sortie

le Préfixe de variable d'entrée prend le nom de la variable tableau, dans cet exemple, url_array . Pour le Nom de la variable de sortie , nous allons affecter une variable, dans cet exemple, url_index que nous allons utiliser dans la demande suivante.


Ensuite, dans nos requêtes ultérieures, nous pouvons extraire chaque valeur en utilisant ${url_index}

Cela va maintenant parcourir chaque entrée du tableau JSON et envoyer les requêtes HTTP aux URL.