Как использовать контроллер ForEach в JMeter

Контроллер ForEach в Jmeter выполняет итерацию по массиву переменных.

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

Бывают случаи, когда нам нужно проанализировать ответ и извлечь из него определенную информацию. Например, при тестировании API мы могли получить ответ JSON, который мог бы содержать массивы JSON.


Затем нам нужно пройти по массиву и для каждого элемента выполнить действие. В JMeter мы можем использовать контроллер ForEach для итерации по массиву JSON.



Как использовать JMeter ForEach Controller

В этом примере мы будем делать запрос GET к ресурсу, который возвращает ответ JSON.




Ответ содержит Множество объектов JSON.

Для каждого объекта нам нужно извлечь URL-адрес, который мы можем сделать через JSONPath.


Путь JSONPath для получения всех URL-адресов в приведенном выше ответе - $.[*].url. Как только мы проанализируем ответ JSON и извлечем URL-адреса, у нас будет массив строк, в основном URL-адреса.

Мы сохраняем этот массив в переменной url_array

Теперь предположим, что для каждого элемента массива String мы хотим сделать запрос к URL-адресу. В JMeter это делается с помощью контроллера ForEach.


Чтобы добавить контроллер ForEach в план тестирования, щелкните правой кнопкой мыши группу потоков> Добавить> Логический контроллер> Контроллер ForEach.

Контроллеру ForEach требуются два параметра:

  • Префикс входной переменной
  • Имя выходной переменной

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


Затем в наших последующих запросах мы можем извлечь каждое значение, используя ${url_index}

Теперь это будет проходить через каждую запись в массиве JSON и делать HTTP-запросы к URL-адресам.