С какими типами авторизации вы работали в Postman?
Что проверяют
Работали ли вы с авторизацией руками, а не только выбирали пункт в выпадающем списке. Важно, понимаете ли вы, во что каждый тип превращается в HTTP-запросе и как хранить токены, чтобы коллекция не ломалась. Следом просят показать, как вы автоматизировали получение токена.
Как отвечать
Отвечайте от своего опыта: какие типы были в ваших проектах и зачем. Для каждого назовите след в запросе:
- Inherit auth from parent: запрос берёт авторизацию у папки или коллекции, настраивается она один раз;
- Basic Auth: логин и пароль через двоеточие кодируются в Base64 и уходят заголовком
Authorization: Basic .... Base64 это кодирование, а не шифрование, без HTTPS пароль читается; - Bearer Token: заголовок
Authorization: Bearer <token>, обычно JWT из запроса логина; - API Key: ключ кладётся в заголовок (например
X-API-Key) или в query-параметр, место задаётся в полеAdd to; - OAuth 2.0: Postman сам проходит grant type (Authorization Code с PKCE, Client Credentials и другие), получает access token и умеет обновлять его по refresh token.
Дальше расскажите про организацию. Токен лежит в переменной окружения {{token}}, пре-реквест скрипт коллекции получает его через pm.sendRequest и сохраняет pm.environment.set("token", ...). Секреты держат в переменных типа secret или в Postman Vault. В CI коллекцию гоняют через Postman CLI или Newman с файлом окружения.
Сильнее всего звучит, что авторизацию вы тестировали, а не только использовали: запрос без токена, с просроченным, с чужим, с токеном роли без прав. Если OAuth 2.0 в работе не встречался, скажите это прямо и опишите, как настроили бы его на тестовом API.
Где спотыкаются
Путают 401 и 403. 401 значит, что сервер вас не опознал, 403 значит, что опознал, но прав не хватает. Для тестировщика это разные баги.
Вставляют токен руками в каждый запрос. Он протухает, и половина коллекции падает разом. Правильно наследовать авторизацию от коллекции и обновлять токен скриптом.
Кладут реальные пароли в общее значение переменной. Оно синхронизируется в workspace и видно всей команде, а локальным остаётся только current value.