Учебное пособие по Jmeter: как отправить файл JSON в виде запроса в теле

В этом руководстве по JMeter мы объясняем, как отправить один или несколько файлов JSON в теле HTTP-запроса.

При тестировании RESTful API мы обычно отправляем POST-запрос в REST API в формате JSON. Параметры запроса в формате JSON необходимо отправлять в теле HTTP-запроса.

Для начала вам понадобится текстовый файл с запросом JSON. Мы будем использовать этот файл для отправки в наш REST API в теле запроса POST.


Предположим, файл находится в /Users/testing-excellence/Perf/blog/json_request.txt

jmeter-json-запрос-сообщение


Наш сценарий JMeter будет выглядеть примерно так:



Jmeter-пост-запрос-JSON

Другими словами, нам нужно выбрать Body Data в HTTP Sampler и вставить следующую строку кода

${__FileToString(/Users/testing-excellence/Perf/blog/${__eval(${json_file})}.txt,,)}

Очевидно, на вашей машине путь будет другим.


Вышеупомянутая строка берет содержимое файла с именем json_file.txt и отправляет содержимое в теле запроса в REST API.

Поскольку JMeter в основном используется для тестирования производительности и нагрузочного тестирования, мы можем выполнить нагрузочное тестирование нашего REST API, отправив несколько запросов JSON.

Для этого мы используем элемент конфигурации набора данных CVS JMeter.

В файле CSV у нас есть столбец с именами файлов запросов JSON. Этот файл CSV служит ссылкой на файлы JSON.


Предположим, у нас есть 10 файлов JSON с именами 100.txt, 101.txt, 103.txt… .110.txt.

jmeter-сообщение-json-запрос

И файл CSV будет выглядеть так:

jmeter-csv-json-запрос


Затем в JMeter мы добавляем элемент конфигурации набора данных CSV в наш план тестирования.

json-csv-request-post-jmeter

Переменная - JSON_FILE, которая принимает значения 100, 101, 102 и т. Д. Из файла CSV.

Затем нам нужно указать эту переменную в нашем __FileToString() Функция JMeter, т.е.


jmeter-json-файл-csv-запрос

Когда мы выполняем этот тест JMeter, он проходит через CVS, беря каждое имя файла и извлекая содержимое каждого файла для отправки в виде JSON в теле запроса.