Сценарий предварительного запроса на загрузку файла с использованием метода 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)

Другие вопросы по тегам