Контроллер ForEach в Jmeter выполняет итерацию по массиву переменных.
В этом руководстве по JMeter мы будем использовать контроллер ForEach для циклического перебора массива JSON.
Бывают случаи, когда нам нужно проанализировать ответ и извлечь из него определенную информацию. Например, при тестировании API мы могли получить ответ JSON, который мог бы содержать массивы JSON.
Затем нам нужно пройти по массиву и для каждого элемента выполнить действие. В JMeter мы можем использовать контроллер ForEach для итерации по массиву JSON.
В этом примере мы будем делать запрос 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-адресам.