Получение cookies из заголовка HTTP-ответа в Postman

Сценарий

Мы хотим выполнить вызов API GET к базе данных клиентов, чтобы подтвердить данные пользователя и получить от сервера токен сессии, токен аутентификации и другие связанные с ними токены в виде cookie-файлов. Эти cookie возвращаются в заголовке ответа и необходимы для включения в заголовок запроса, для вызова других API для дальнейших действий.

Подход 1: Вручную

  1. Создать HTTP-запрос: В Postman создайте вызов GET API к базе данных клиентов.
  1. Отправьте запрос: Выполните запрос для проверки данных клиента и получите cookies в заголовке ответа.
  1. Копировать cookie: Вручную скопируйте значения заголовков ‘Set-Cookie‘ и сформируйте строку, отделенную точкой с запятой:
SESSION_TOKEN=S29t8YgTQkvvbsZKxGpgBzqXUSMP3jgYAcfdPr98xBBUjxnpm8mTyZpmQEuSgmXXzFPyzfKNM5bUmVHbgxXdxyV8QM4KFkTF8raE;at=ff79b451332a420da473d93d00d0ac4e;tkt=1b5f3f4788a74af29b7d47c85ecf6806;
  1. Создайте еще один запрос: Сформируйте еще один GET-запрос, чтобы получить подробную информацию об учетной записи. Добавьте в запрос заголовок ‘Cookie‘ и вставьте в него сгенерированную ранее строку.
  1. Отправьте запрос: Выполните запрос для получения подробной информации об учетной записи пользователя.

Ручной подход неудобный, поскольку сначала нужно отправить запрос createSession, вручную скопировать куки из заголовка ответа, объединить их и включить в последующие запросы.

Подход 2: Автоматизированный

Рассмотрим лучший подход и воспользуемся скриптовыми возможностями Postman, чтобы автоматизировать извлечение куки из заголовка ответа. Сценарий объединяет эти куки в строку, разделенную точкой с запятой, и сохраняет ее в глобальной переменной, переменной коллекции или переменной окружения.

Сценарий извлекает все заголовки ответа, фильтрует заголовки с ключом ‘Set-Cookie‘, извлекает их значения, объединяет эти значения в одну строку, разделенную точкой с запятой, и сохраняет ее в переменной окружения.

var setCookieHeaders = pm.response.headers.all().filter(header => header.key === 'Set-Cookie').map(header => header.value).join('; ');
pm.environment.set('sessionCookies', setCookieHeaders);

Теперь переменная окружения ‘sessionCookies‘ может быть использована в последующих запросах. 

Установите заголовок ‘Cookie‘ в запросе API аккаунтов с помощью переменной окружения ‘sessionCookies

Резюме 

Хотя ручной подход к копированию cookie-файлов из заголовка ответа и включению их в последующие запросы является простым, он может быть неудобным и подверженным ошибкам. Используя вкладку «Сценарии» в Postman, можно автоматизировать процесс извлечения, комбинирования и хранения файлов cookie в переменных окружения, что упростит рабочий процесс и снизит вероятность ошибок. Этот метод не экономит время, повышает точность и надежность тестирования API и взаимодействия с ними.


Himanshu Soni


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас