Postman для тестировщика: от первого запроса до коллекции
Postman — первый инструмент, который открывает тестировщику доступ к слою под интерфейсом. Разберём путь от одиночного запроса до коллекции, которая проверяет себя сама.
Первый запрос за две минуты
Начинать с нуля не нужно: возьмите готовый запрос из браузера. Откройте DevTools → Network → выберите обращение к API → правый клик → Copy as cURL. В Postman нажмите Import → Raw text и вставьте. Запрос соберётся сам, со всеми заголовками и телом.
Дальше нажмите Send и посмотрите на три вещи: код ответа, время и тело. Если код 200, а в теле "success": false — вы уже нашли типовой дефект, о котором мониторинг не узнает.
Как устроено окно
| Вкладка | Что там | Когда нужна |
|---|---|---|
| Params | Параметры в адресе | Фильтры, страницы, поиск |
| Authorization | Токен, логин и пароль | Почти всегда |
| Headers | Заголовки | Content-Type, языки, версии API |
| Body | Тело запроса | POST, PUT, PATCH |
| Tests | Проверки на JavaScript | Когда запросов становится много |
Про тело: при отправке JSON выбирайте raw → JSON, а не raw → Text. Иначе не проставится Content-Type: application/json, и сервер ответит 415 или 400. Это ошибка номер один у новичков.
Переменные: почему без них разваливается всё
Как только запросов становится больше пяти, адрес стенда и токен начинают кочевать по всем и рассыпаются при первой смене окружения. Лечится переменными.
- Создайте окружение (Environments → +), назовите «test».
- Добавьте переменные
base_urlиtoken. - В запросах пишите
{{base_url}}/api/ordersвместо полного адреса. - В Authorization выберите Bearer Token и подставьте
{{token}}. - Сделайте копию окружения под другой стенд — переключение станет одним кликом.
Если коллекция уезжает в общий репозиторий или экспортируется коллеге, действующий токен уезжает вместе с ней. Держите его в окружении и не выкладывайте окружение наружу.
Автоматическая подстановка токена
Логиниться руками перед каждым прогоном скучно. Сделайте запрос авторизации первым в коллекции и во вкладке Tests добавьте две строки:
const data = pm.response.json();pm.environment.set("token", data.token);
Теперь после запроса логина токен сам ложится в переменную, и все следующие запросы работают. Это первый шаг от «инструмента для одиночных проверок» к «набору, который прогоняется целиком».
Проверки во вкладке Tests
Проверки пишутся на JavaScript, но для старта хватает трёх шаблонов — их даже не нужно запоминать, они есть в подсказках справа.
- Код ответа:
pm.test("200", () => pm.response.to.have.status(200)); - Поле в ответе:
pm.test("есть id", () => pm.expect(pm.response.json().id).to.exist); - Скорость:
pm.test("быстро", () => pm.expect(pm.response.responseTime).to.be.below(1000));
Дальше коллекция запускается целиком через Runner, и вы получаете отчёт: что прошло, что упало. По сути это первые автотесты — без единой строчки «настоящего» кода.
Что проверять, кроме успешного сценария
Postman ценен именно тем, что позволяет отправить то, чего интерфейс не даёт отправить.
- Убрать заголовок авторизации — ожидается 401.
- Подставить чужой идентификатор в адрес — ожидается 403 или 404.
- Отправить отрицательное количество или цену — сервер обязан отказать, даже если форма это запрещает.
- Убрать обязательное поле — 400 с указанием, какое именно поле неверно.
- Отправить один и тот же POST дважды — не создалось ли два заказа.
Что означают коды в ответах — в шпаргалке по HTTP. Базовое устройство запроса разобрано в статье что такое API простыми словами.
Как организовать коллекцию, чтобы ей пользовались
Коллекция из сорока запросов в одну кучу быстро становится свалкой. Порядок наводится тремя приёмами.
- Папки по смыслу, а не по методам: «Авторизация», «Заказы», «Каталог». Искать нужный запрос станет вдвое быстрее.
- Понятные названия. Не «POST orders», а «Создание заказа — успешный сценарий» и «Создание заказа — без обязательного поля».
- Описание у коллекции. Пары строк достаточно: какой стенд, какие переменные нужны, как получить токен. Через месяц вы сами скажете себе спасибо.
Готовая коллекция с проверками — сильный аргумент в портфолио: она показывает не «прошёл курс», а «умею работать с API». Экспортируется в один файл, кладётся в репозиторий, ссылка идёт в резюме.
Insomnia, curl и прочие
Postman — не единственный вариант. Insomnia легче и приятнее для одиночных запросов, curl незаменим, когда нужно приложить точный способ воспроизведения в задачу или запустить проверку на сервере без интерфейса.
На собеседовании спрашивают не про кнопки конкретного приложения, а про понимание: из чего состоит запрос, где живёт авторизация, что означает код ответа. Освоив это в Postman, вы за десять минут переходите в любой другой инструмент.
Нужно ли платить за Postman?
Для работы тестировщика хватает бесплатной версии: запросы, окружения, коллекции и Runner в ней есть. Платные тарифы про совместную работу больших команд.
Postman — это автоматизация?
Пограничный случай. Коллекция с проверками, которая гоняется в CI через Newman, — уже автотесты. Но это не заменяет тесты на уровне кода.
Что делать, если запрос работает в браузере, а в Postman — нет?
Чаще всего дело в куках или заголовках, которые браузер подставляет сам. Скопируйте запрос через «Copy as cURL» и импортируйте — так переносятся все заголовки разом.
Разница между «читал про Postman» и «умею» видна на собеседовании за одну минуту: просят собрать запрос с авторизацией и объяснить ответ. В курсе для этого сделан тренажёр, где запросы уходят на настоящий учебный сервер прямо в браузере — без установки и регистрации. Попробовать можно бесплатно в тренажёре «клиент API», весь курс — 14 900 ₽ один раз.