Nano Hash - криптовалюты, майнинг, программирование

Как отправить тело JSON И видеофайл в конечную точку API на JMeter?

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

Я уже обращался к этому руководству, но безуспешно.

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

Content-Type: multipart/form-data

{
    "email": "[email protected]",
    "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

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 Header Manager и т. д. Все, что вам нужно сделать, это реализовать параметризация и корреляция, чтобы сценарий можно было успешно воспроизвести.

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

30.09.2019
  • Спасибо за ответ Дмитрий! Браузер отправляет только 1 запрос с телом json и видеофайлом, я попробовал на почтальоне, и он работает. Но когда я пробую то же самое на jmeter, этого не происходит. Я пытался проверить, передаются ли данные тела запросу, но это не так. Проблема с добавлением типа контента, упомянутого в приведенном выше руководстве, заключается в том, что он по-прежнему не работает и дает 401, даже после того, как я это попробовал. 30.09.2019
  • Как упоминалось здесь: `` --boundary Content-Type: file MIME type File content --boundary-- `` Что мне добавить в содержимое файла? Когда я пытался использовать функцию FileToString, она не работает 30.09.2019
  • Если вы можете запустить запрос в браузере и в почтальоне, вы сможете записать запрос в JMeter. Возможно тело файла как-то закодировано / сжато 30.09.2019
  • Есть ли другое решение, кроме записи запроса? Я пробовал использовать рекордер, но это мобильное приложение, и мне не удалось записать даже после выполнения инструкций по записи в мобильном приложении. 14.01.2020
  • Обычно можно записывать мобильные приложения, вам просто нужно установить сертификат JMeter на устройство. На Android 7+ вам также потребуется предпринять некоторые дополнительные действия, ознакомьтесь с Запись с помощью устройств Android для получения дополнительных сведений. 14.01.2020

  • 2

    Чтобы опубликовать тело json и вложение, вы можете добавить свой адрес электронной почты и пароль на вкладке Параметры HTTPS-запроса JMeter и файл на вкладке Загрузка файлов.

    09.01.2020
  • Спасибо за ответ, но это не работает. см. мои комментарии выше. 10.01.2020
  • Можете ли вы поделиться заголовком, который вы добавили в Jmeter, и что было добавлено в почтальон для успешного запроса? 18.02.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..