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