Блог

Postman для API тестирования: гайд для начинающих QA

Postman для API тестирования: первый тест за 5 минут

Сложность: 4,5/5
Работаешь Manual QA? Видел в вакансиях требование "API тестирование"? Не знаешь что это и с чего начать?
Postman — самый популярный инструмент для тестирования API. Я покажу как сделать первый запрос за 5 минут. С установкой. С примерами. Без сложной теории.
После статьи запустишь свой первый API тест. И поймёшь что это не страшно.

Быстрый старт (5 минут)

  1. Скачай Postman с postman.com (бесплатно)
  2. Установи и открой
  3. Создай новый запрос: кнопка "New" → "HTTP Request"
  4. Вставь URL: https://jsonplaceholder.typicode.com/users/1
  5. Метод: GET (уже выбран по умолчанию)
  6. Нажми Send
  7. Увидел JSON ответ внизу? Поздравляю — первый API запрос готов!
Работает? Читай дальше — разберём что произошло.

Что такое API и зачем его тестировать

API (Application Programming Interface) — способ как программы общаются между собой.
Пример:
Открываешь приложение погоды. Оно отправляет запрос на сервер: "дай погоду для Москвы". Сервер отвечает JSON с данными. Приложение показывает тебе погоду.
Запрос к серверу — это API запрос.
Зачем тестировать API:
✅ Быстрее чем UI (не надо кликать кнопки)
✅ Стабильнее (нет проблем с вёрсткой, анимациями)
✅ Находишь баги на backend до UI
✅ Можешь автоматизировать легко
✅ Проверяешь данные напрямую
Что тестируем:
  • Правильность данных (корректный JSON)
  • Статус коды (200, 400, 500)
  • Время ответа (performance)
  • Авторизацию (токены, права доступа)
  • Валидацию (что будет если ввести неверные данные)

API vs UI тестирование: в чём разница

Правило: сначала проверь API. Потом UI. Найдёшь баги раньше.
Подробнее про типы тестирования: Виды тестирования

Почему именно Postman

Плюсы:
✅ Бесплатный
✅ Удобный интерфейс (не нужен код)
✅ Коллекции (группировка запросов)
✅ Переменные окружения (dev/prod)
✅ Автотесты (встроенные assertions)
✅ Newman CLI (запуск через терминал)
✅ Документация API
✅ Mock servers
Альтернативы:
  • Insomnia (проще, но меньше функций)
  • Thunder Client (плагин для VS Code)
  • cURL (командная строка, для продвинутых)
Для Junior QA Postman — лучший выбор. Его требуют 90% работодателей.

Установка и первое знакомство

Установка Postman

Для всех ОС:
  1. Иди на postman.com/downloads
  2. Скачай версию для своей ОС
  3. Установи (стандартная установка)
  4. Запусти
  5. Создай бесплатный аккаунт (нужен для синхронизации)
Системные требования:
  • Windows 10+, macOS 10.13+, Linux
  • 4GB RAM минимум
  • 500MB свободного места

Интерфейс: что где находится

Основные элементы:
1. Workspace (рабочая область)
Твои проекты. Можно создавать личные или командные.
2. Collections (коллекции)
Папки с запросами. Группируешь по проектам: "API магазина", "API банка".
3. Requests (запросы)
Отдельные API запросы: GET /users, POST /login.
4. Environments (окружения)
Переменные для разных серверов: dev, test, prod.
5. Tests (тесты)
Автоматические проверки ответов.
Интерфейс запроса:
  • URL строка — адрес API
  • Метод — GET, POST, PUT, DELETE...
  • Params — параметры запроса
  • Headers — заголовки (авторизация, тип данных)
  • Body — тело запроса (для POST/PUT)
  • Response — ответ сервера

Основы HTTP для тестирования

HTTP методы

Статус коды

Запомни:
  • 2xx — успех
  • 4xx — ошибка клиента (твоя ошибка)
  • 5xx — ошибка сервера (их ошибка)

Headers и Body

Headers — метаданные запроса:

Content-Type: application/json
Authorization: Bearer token123
Accept: application/json
Body — данные которые отправляешь (POST/PUT):

{
"name": "John",
"email": "john@mail.com"
}

Первый запрос: пошагово

Будем использовать JSONPlaceholder — бесплатное API для тренировки.

GET запрос к публичному API

Задача: получить данные пользователя с ID=1
Шаги:
  1. Открой Postman
  2. Нажми New → HTTP Request
  3. В поле URL вставь: https://jsonplaceholder.typicode.com/users/1
  4. Убедись что метод GET (слева от URL)
  5. Нажми Send

Анализ ответа

Внизу появился ответ:
Status: 200 OK (успешно)
Time: ~300ms (скорость ответа)
Size: ~500B (размер данных)
Body (JSON):

{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"city": "Gwenborough"
}
}

Проверка статус кода и данных

Вручную проверяем:
✓ Статус код 200
✓ ID равен 1
✓ Есть поля name, email
✓ Email содержит @
Поздравляю — протестировал API вручную!

POST запрос: создание данных

Задача: создать нового пользователя
Шаги:
  1. Создай новый запрос
  2. Метод: POST
  3. URL: https://jsonplaceholder.typicode.com/users
  4. Вкладка Body → raw → выбери JSON
  5. Вставь данные:

{
"name": "Test User",
"email": "test@example.com",
"username": "testuser"
}
  1. Нажми Send
Ответ:

{
"id": 11,
"name": "Test User",
"email": "test@example.com",
"username": "testuser"
}
Проверка:
✓ Статус 201 Created
✓ Вернулся ID нового пользователя
✓ Данные совпадают с отправленными

Коллекции: организация тестов

Коллекция — папка с запросами.
Создание коллекции:
  1. Слева нажми Collections
  2. Кнопка + (Create Collection)
  3. Назови: "JSONPlaceholder API"
  4. Перетащи запросы в коллекцию
Структура коллекции:
📁 JSONPlaceholder API
📁 Users
GET /users
GET /users/:id
POST /users
PUT /users/:id
DELETE /users/:id
📁 Posts
GET /posts
POST /posts
Плюсы:
✅ Организованность
✅ Можно запустить все тесты разом (Runner)
✅ Можно экспортировать/импортировать

Переменные окружения

Что это и зачем

Проблема: у тебя 3 сервера — dev, test, prod. URL разные. Менять в каждом запросе долго.
Решение: переменные окружения.

Создание переменных

  1. Справа вверху Environments
  2. Кнопка + (Create Environment)
  3. Назови: "Development"
  4. Добавь переменную:
  • Variable: base_url
  • Initial Value: https://jsonplaceholder.typicode.com
  • Current Value: то же самое
Сохрани
Создай ещё окружение "Production" с другим URL.

Использование {{variable}}

В запросах вместо полного URL пиши:
{{base_url}}/users/1
Postman подставит значение из активного окружения.
Переключение:
Справа вверху выбирай "Development" или "Production" из списка.
Другие переменные:
  • {{api_key}} — ключ API
  • {{auth_token}} — токен авторизации
  • {{user_id}} — ID пользователя

Автоматизация: тесты в Postman

Вкладка Tests

Тут пишешь код проверок. Выполняется после каждого запроса.
Язык: JavaScript (но простой, на уровне примеров).

Базовые assertions

Открой запрос → вкладка Tests → вставь:

javascript
// Проверка статус кода
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});

// Проверка времени ответа
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});

// Проверка заголовка
pm.test("Content-Type is JSON", function () {
pm.response.to.have.header("Content-Type", "application/json; charset=utf-8");
});
Нажми Send. Внизу вкладка Test Results — видишь результаты проверок.

Проверка JSON ответа

// Парсим JSON
pm.test("Response has correct structure", function () {
var jsonData = pm.response.json();

// Проверяем поля
pm.expect(jsonData).to.have.property("id");
pm.expect(jsonData).to.have.property("name");
pm.expect(jsonData).to.have.property("email");
});

// Проверяем конкретное значение
pm.test("ID is 1", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(1);
});

// Проверяем тип данных
pm.test("Email is a string", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.email).to.be.a("string");
});

// Проверяем что email содержит @
pm.test("Email contains @", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.email).to.include("@");
});
Snippets (готовые шаблоны):
Справа во вкладке Tests есть кнопки с готовыми проверками. Кликай — код вставляется автоматически.

Запуск коллекции через Runner

Collection Runner — запускает все тесты коллекции разом.
Шаги:
  1. Открой коллекцию
  2. Кнопка Run (справа вверху)
  3. Выбери запросы которые запустить
  4. Выбери окружение
  5. Кнопка Run [Collection Name]
Результат:
Видишь какие тесты прошли (зелёные), какие упали (красные).
Плюсы:
✅ Регрессионное тестирование за 1 клик
✅ Видишь все баги разом
✅ Можно сохранить результаты

Newman: запуск через командную строку

Newman — CLI для Postman. Запускаешь коллекции без GUI.
Зачем:
✅ Интеграция в CI/CD (Jenkins, GitLab)
✅ Запуск на сервере без интерфейса
✅ Автоматизация в расписании
Установка:
bash
npm install -g newman
Экспорт коллекции:
  1. Коллекция → три точки → Export
  2. Сохрани как collection.json
Запуск:
bash
newman run collection.json
С окружением:
bash
newman run collection.json -e environment.json
Отчёт HTML:
bash
npm install -g newman-reporter-htmlextra
newman run collection.json -r htmlextra
💡 Хочешь интегрировать API тесты в CI/CD? На курсе автоматизации разберём Newman + Jenkins подробно.

Частые ошибки новичков

1. Не проверяют статус коды
Запрос прошёл, данные есть — думают всё ок. А статус 500 (ошибка сервера).
Решение: всегда проверяй статус.
2. Забывают Headers
Отправляют JSON без Content-Type: application/json. Сервер не понимает формат.
Решение: проверяй Headers, особенно при POST/PUT.
3. Хардкодят данные
Пишут URL прямо в запросах. Потом меняется сервер — надо менять везде.
Решение: используй переменные окружения.
4. Не организуют коллекции
Все запросы в куче. Невозможно найти нужный.
Решение: структурируй по папкам.
5. Не используют Pre-request Scripts
Нужен токен для каждого запроса. Копируют вручную каждый раз.
Решение:
// Pre-request Script на уровне коллекции
pm.sendRequest({
url: "{{base_url}}/auth/login",
method: "POST",
body: {
mode: "raw",
raw: JSON.stringify({
username: "admin",
password: "admin123"
})
}
}, function (err, res) {
pm.environment.set("auth_token", res.json().token);
});
6. Игнорируют валидацию схемы JSON
Решение:
var schema = {
"type": "object",
"properties": {
"id": {"type": "number"},
"name": {"type": "string"}
},
"required": ["id", "name"]
};

pm.test("Schema is valid", function() {
pm.response.to.have.jsonSchema(schema);
});

Best practices

1. Используй переменные окружения
Для URL, токенов, ID.
2. Организуй коллекции по модулям
Users, Products, Orders — отдельные папки.
3. Пиши тесты для каждого запроса
Минимум: статус код, структура JSON.
4. Используй Pre-request Scripts
Для авторизации, генерации данных.
5. Называй запросы понятно
❌ "Request 1"
✅ "GET /users - Get all users"
6. Документируй API
Postman может генерировать документацию из коллекций.
7. Версионируй коллекции
Экспортируй в Git. Отслеживай изменения.
8. Запускай тесты в CI/CD
Newman + Jenkins/GitLab = автоматизация.
9. Проверяй время ответа
Performance важен:
pm.test("Response time < 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
10. Используй Mock Servers
Нет backend? Создай mock в Postman.

Что изучать дальше

Освоил базу Postman? Двигайся дальше:
1. Авторизация
  • Bearer Token
  • API Key
  • OAuth 2.0
  • Basic Auth
2. Pre-request Scripts
Динамическая генерация данных, цепочки запросов.
3. JSON Schema Validation
Проверка структуры ответа.
4. Data-driven testing
CSV/JSON файлы с данными для массовых тестов.
5. Mock Servers
Эмуляция API когда backend не готов.
6. Newman в CI/CD
Автоматический запуск тестов при каждом коммите.
7. Postman Monitors
Запуск коллекций по расписанию (каждый час).
8. API документация
Генерация документации из коллекций.
9. GraphQL
Postman поддерживает GraphQL запросы.
10. REST Assured (для автоматизации)
Переход на код (Java/Python) для более сложных сценариев.
На курсе ручного тестирования мы проходим Postman от базы до продвинутых техник.

Вопросы и ответы

Нужно ли знать программирование для Postman?
Нет. Базовые функции работают без кода. Для тестов нужен простой JavaScript — научишься по примерам.
Чем Postman лучше Insomnia?
Postman функциональнее: коллекции, окружения, Newman CLI, документация. Insomnia проще, но меньше возможностей.
Можно ли тестировать SOAP в Postman?
Да. Postman поддерживает SOAP запросы через XML Body.
Как авторизоваться с токеном?
Вкладка Authorization → Type: Bearer Token → вставь токен. Или в Headers: Authorization: Bearer your_token_here.
Что такое Pre-request Script?
Код который выполняется ДО отправки запроса. Нужен для получения токена, генерации данных.
Можно ли параллельно запускать тесты?
Через Newman нет (sequential). Используй Postman CLI или сторонние инструменты.
Бесплатен ли Postman?
Да. Есть платные фичи (командная работа, больше запросов к API), но для обучения хватит бесплатного.
Как сохранить коллекцию?
Экспорт: коллекция → три точки → Export → сохрани JSON. Импорт: Import → выбери файл.

Следующие шаги

Теперь знаешь основы Postman. Можешь тестировать API.
Что делать:
  1. Протестируй 3-5 публичных API (JSONPlaceholder, ReqRes, OpenWeatherMap)
  2. Создай коллекцию с тестами
  3. Запусти через Runner
  4. Попробуй Newman
  5. Добавь в портфолио

Как я могу помочь

Бесплатная консультация

Не уверен как развиваться в API тестировании?
Запишись на созвон:
✓ Оценю твой уровень
✓ Скажу что учить дальше
✓ Дам план обучения
✓ Отвечу на вопросы

Курс ручного тестирования

Хочешь освоить API тестирование с ментором?
✓ Postman от А до Я
✓ REST API, JSON, авторизация
✓ Автотесты для портфолио
✓ Подготовка к вопросам про API на собесах
✓ Практика на реальных проектах
Формат: 1:1 индивидуально
Срок: 2 месяца
Оплата: постоплата после оффера

Курс автоматизации Python

Хочешь интегрировать API тесты в CI/CD?
✓ Newman + Jenkins/GitLab
✓ REST Assured (Python)
✓ Data-driven testing
✓ API автотесты в портфолио

Boosty подписки

3 уровня:
Уровень 1: Закрытый чат (обучение, ответы на вопросы)
Уровень 2: Помощь с трудоустройством (все что в обучении+резюме, собесы, разбор тестов)
Уровень 3: Максимум ( + консультации 1:1)
Читай также:
Еще больше полезных материалов в моем телеграм-канале https://t.me/yanaoqa
2025-12-12 20:01