Як выкарыстоўваць кантролер ForEach у JMeter

ForEach Controller у Jmeter перабірае масіў зменных.

У гэтым уроку па JMeter мы будзем выкарыстоўваць кантролер ForEach для цыкла праз масіў JSON.

Бываюць выпадкі, калі нам трэба прааналізаваць адказ і атрымаць з яго пэўную інфармацыю. Напрыклад, пры тэставанні API мы можам атрымаць адказ JSON, які можа ўтрымліваць масівы JSON.


Затым нам трэба прайсціся па масіве і для кожнага элемента выканаць дзеянне. У JMeter мы можам выкарыстоўваць кантролер ForEach для ітэрацыі праз масіў JSON.



Як карыстацца кантролерам JMeter ForEach

У гэтым прыкладзе мы зробім запыт GET на рэсурс, які верне адказ JSON.




Адказ утрымлівае Масіў аб'ектаў JSON.

Для кожнага аб'екта нам трэба атрымаць URL, які мы можам зрабіць праз JSONPath.


JSONPath, каб атрымаць усе URL-адрасы ў прыведзеным вышэй адказе, $.[*].url. Як толькі мы аналізуем адказ JSON і здабываем URL-адрасы, у нас ёсць масіў радкоў, у асноўным URL-адрасы.

Мы захоўваем гэты масіў у зменнай з назвай url_array

Зараз выкажам здагадку, што для кожнага элемента масіва String мы хочам зрабіць запыт на URL. У JMeter гэта робіцца з дапамогай кантролера ForEach.


Каб дадаць кантролер ForEach у план выпрабаванняў, пстрыкніце правай кнопкай мышы на Thread Group> Дадаць> Лагічны кантролер> ForEach Controller

Кантролер ForEach патрабуе двух параметраў:

  • Прэфікс пераменнай уводу
  • Выходная назва зменнай

Прэфікс пераменнай уводу прымае імя зменнай масіва, у гэтым прыкладзе url_array . Для Выходная назва зменнай , мы прысвоім зменную, у гэтым прыкладзе, url_index якія мы збіраемся выкарыстаць у наступным запыце.


Затым у наступных запытах мы можам атрымаць кожнае значэнне, выкарыстоўваючы ${url_index}

Цяпер гэта будзе перабіраць кожны запіс у масіве JSON і рабіць HTTP-запыты на URL-адрасы.