Урок за 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-request-post


Нашият скрипт JMeter ще изглежда по следния начин:

jmeter-post-request-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-post-json-request

И CSV файлът ще изглежда така:

jmeter-csv-json-request


След това в JMeter добавяме елемента за конфигуриране на CSV набор от данни към нашия план за тестване

json-csv-request-post-jmeter

Променливата е JSON_FILE, която приема стойностите 100, 101, 102 и т.н ... от CSV файла.

След това трябва да се позовем на тази променлива в нашите __FileToString() Функция JMeter, т.е.


jmeter-json-file-csv-request

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