Как хранить и повторно использовать файлы cookie в Postman?

Я использую Postman для тестирования и игры с API.

Для URL-адреса входа API требует отправки запроса POST с полями username и password. Я делаю это и получаю 200 ответ с сообщением о том, что я вошел в систему.

Затем я пробую другой запрос на получение пользовательских данных. Однако я получаю ответ, что я не авторизован.

Я понял, что эта проблема, скорее всего, связана с тем, что файл cookie, который отправляется мне при входе в систему, не включается в следующий запрос почтальона.

Итак, мой вопрос: как мне сохранить и включить файлы cookie для будущих запросов?


person CodyBugstein    schedule 01.12.2014    source источник
comment
@CodyBugstien, Вам удалось решить эту проблему, такая же проблема происходит и со мной   -  person twister_void    schedule 10.06.2017


Ответы (4)


Сохраните значение cookie, которое вы хотите использовать, в глобальной переменной. На вкладке Tests запроса на вход напишите

postman.setGlobalVariable('key', postman.getResponseCookie("cookieName").value);

Передайте значение на вкладке Headers в качестве файла cookie в запросе пользователя:

Cookie | cookieName={{key}}
person Ashutosh    schedule 10.05.2018
comment
Я считаю, что это может быть устаревший код? Кажется, теперь это вызывает ошибку нулевой ссылки. - person jheep; 03.09.2019

Я попытался использовать ответ Ашутоша, но получил ошибку. Я предполагаю, что это потому, что API сценариев Postman изменился?

Во всяком случае, у меня сработало следующее:

  1. На вкладке Tests запроса, который вернет файлы cookie, которые вы хотите сохранить, напишите
pm.globals.set('<your key>', pm.cookies.get('<cookie name>'));
  1. Затем, как описано в ответе Ашутоша, добавьте файл cookie в заголовки, установив ключ как cookie и соответствующее значение как <your cookie name>={{<global variable name>}};.

Я нашел документацию по этому поводу в справочнике по API песочницы Postman.

person darksinge    schedule 26.06.2019

(Обновлено 18 декабря 2020 г., с использованием собственного приложения Postman без перехватчика) Традиционный способ чтения файлов cookie для меня не работает pm.cookies.get('<cookie name>'). Вот обходной путь, который автоматически прикрепляет cookie аутентификации ко всем запросам в коллекции:

// The test scripts below run after the api /login returns the response

const authCookie = pm.response.headers.idx(3).value
/* 
pm.response.headers.idx(3) is equal to:
{key: "Set-Cookie", value: "xs=eyJhb; Max-Age=3600; Path=/; Expires=Fri, 18 Dec 2020 04:40:34 GMT; HttpOnly; Secure; SameSite=None"} 
*/

const token = authCookie.substring(3, authCookie.indexOf(';'))
pm.collectionVariables.set('xs_value', token);

Затем добавьте эти сценарии предварительного запроса ко всей коллекции:

// Scripts below runs before any request within a collection is sent

const token = pm.collectionVariables.get('xs_value')
pm.request.headers.upsert({ key: 'Cookie', value: `xs=${token}` })

Наслаждаться!

Дополнительная информация о том, как прикреплять заголовки к запросам < / а>

person Son Xuan Nguyen    schedule 18.12.2020

Кажется, в Google Chrome есть два плагина Interceptor. обязательно установите правильный.

person Ali Nikneshan    schedule 08.12.2015