Как отправить тело JSON и видеофайл в конечную точку API на JMeter? - PullRequest
0 голосов
/ 30 сентября 2019

Я не могу отправить оба, данные тела JSON и файл видео / изображения вместе в одном запросе на JMeter. Это дает 401 несанкционированный, хотя я добавил заголовок авторизации в диспетчере заголовков HTTP. Тот же запрос с заголовками прекрасно работает для Почтальона.

Я уже ссылался на это руководство здесь без удачи.

https://www.blazemeter.com/blog/testing-advanced-rest-api-file-uploads-jmeter/

Content-Type: multipart/form-data

{
    "email": "xyz@gmail.com",
    "password": "xyz",
    "file": ${__FileToString("/Downloads/SampleVideo_1280x720_1mb.mp4")}

}

РЕЗУЛЬТАТ ОБРАЗЦА:

Thread Name: Thread Group 1-1
Sample Start: 2019-09-30 14:26:25 IST
Load time: 2922
Connect Time: 838
Latency: 2922
Size in bytes: 202
Sent bytes:1056397
Headers size in bytes: 202
Body size in bytes: 0
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""): 
Response code: 401
Response message: Unauthorized


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

ЗАПРОС:

POST data:
--o3F8APyqP080W3wk0N_-96jzl11Bfsa
Content-Disposition: form-data; name="file"; filename="SampleVideo_1280x720_1mb.mp4"
Content-Type: video/mp4
Content-Transfer-Encoding: binary

<actual file content, not shown here>
--o3F8APyqP080W3wk0N_-96jzl11Bfsa--


[no cookies]

1 Ответ

0 голосов
/ 30 сентября 2019

JMeter должен делать то, что делает настоящий браузер (или другое приложение, использующее вашу конечную точку API).

Если браузер (или приложение) отправляет 2 запроса - JMeter также должен отправлять 2 запроса. Если браузер (или приложение) отправляет 1 запрос - JMeter должен отправить 1 запрос. В случае 1 запроса я ожидаю, что вы должны отправить application/json в качестве значения заголовка Content-Type , как это делается в руководстве, которое вы ссылаетесь.

--boundary
Content-Type: application/json; charset=UTF-8



JSON Metadata
--boundary
Content-Type: file MIME type



File content
--boundary--

Ответ довольно прост: просто запись запрос с использованием JMeter HTTP (S) Test Script Recorder и JMeter предложит правильную конфигурациюСэмплер (ы) HTTP-запросов, Диспетчер заголовков HTTP и т. Д. Все, что вам нужно сделать, - это реализовать параметризацию и корреляцию , чтобы сценарий мог успешно воспроизводиться.

Один важный бит: во время записи вам необходимо иметь файл SampleVideo_1280x720_1mb.mp4 в папке «bin» JMeter, поскольку современные браузеры не возвращают полный путь , следовательно, JMeter сможет правильнозахватить запрос на загрузку файла, только если файл находится в папке «bin». Дополнительная информация: Запись загрузки файлов с помощью JMeter

...