Сценарий предварительного запроса на загрузку файла с использованием метода multipart/form-data дважды в Postman
Я работаю с проектом API и пишу тестовые примеры для Postman для автоматизации проверки статуса API. Здесь у меня есть один метод загрузки, при котором пользователь должен загрузить файл на сервер и проверить, возвращает ли сервер соответствующий ответ.
Метод загрузки, принимающий запрос с multipart/form-data, от Почтальона, который я передаю, как показано ниже:
Я считаю, что для написания тестового примера мне нужно написать скрипт предварительного запроса.
pm.sendRequest({
url: pm.environment.get("baseURL") + '/document/upload',
method: 'POST',
header: [{
"key": "Authorization",
"value": pm.environment.get("authorization"),
"type": "text",
}],
body: {
mode: 'formdata',
formdata: [{
"key": "file",
"type": "binary",
"src": "C:\Users\Desktop\api.pdf"
}]
}
}, function(err, res) {
console.log(res);
});
Тем не менее, метод получает удар два раза, есть мысли, чтобы сделать его правильным и ударить только один раз?
2 ответа
Я просмотрел документы и понял, в чем проблема. Я столкнулся с проблемой при запуске сбора с использованием Runner, после поиска способа обработки загрузки файлов, я наконец пришел к Ньюману, что кажется легким для таких сценариев. Тем не менее, до сих пор неясно, как загрузить файл во время работы с помощью Runner!
Согласно комментариям выше:
По соображениям безопасности Postman runner не поддерживает загрузку файлов напрямую. Найдите тему Github здесь
Вы можете добавить запрос перед этим в своей коллекции, что сделает загрузку, если она вам понадобится в следующей. Хотя хорошая практика гласит, что запросы должны быть атомарными с предварительным запросом, это будет очень сложно. Вы можете добиться этого, используя строку файлов base64 и отправить запрос с formdata, если вы настаиваете на этом. Другой вариант работает с Ньюманом в конвейере. Все, что вам нужно сделать, это экспортировать коллекцию, среду и тестовые файлы и убедиться, что у вас нет абсолютного пути в экспортированном json. (Newman следует запускать из каталога с json-файлами collection и env)