Глава 1.5: Тестирование API через Postman
Время изучения: 50 минут
1. Почему тестируем API? Предстартовая проверка
Представьте: перед запуском ракеты инженеры проводят тестовые включения систем. Пропустите проверку — и миссия может провалиться!
Тестирование API — ваши контрольные испытания:
-
✅ Проверить работоспособность "стыковочных узлов"
-
🛡️ Обнаружить уязвимости до боевого использования
-
📊 Убедиться, что данные передаются без искажений
💡 Космическая аналогия: Postman — как тестовый пульт ЦУП для имитации всех сценариев: "Что если запросить данные о несуществующей планете? Выдержит ли сервер 1000 запросов/сек?"
2. Postman: "Центр управления полетами" для API
Возможности:
-
📡 Отправка любых HTTP-запросов (GET, POST, PUT, DELETE)
-
🔍 Анализ ответов (статус-коды, заголовки, JSON-тело)
-
🧪 Написание автоматических тестов (JavaScript)
-
🌐 Работа с переменными окружениями (тестовое vs боевое)
3. Первый запуск: Тестируем API планет
Шаг 1: Создаем запрос
-
Откройте Postman → New → Request
-
Введите URL:
https://api.spacexdata.com/v4/rockets
-
Выберите метод: GET
Шаг 2: Отправляем "сигнал"
Шаг 3: Анализируем телеметрию:
- Статус: 200 OK
- Тело ответа (JSON): список ракет с параметрами
[
{
"name": "Falcon 1",
"type": "rocket",
"active": false,
"stages": 2,
"id": "5e9d0d95eda69955f709d1eb"
},
{
"name": "Falcon 9",
"type": "rocket",
"active": true,
"id": "5e9d0d95eda69973a809d1ec"
}
]
4. Схема: Компоненты Postman
[Рабочее пространство]
├── Вкладка "Params" (Query-параметры)
├── Вкладка "Headers" (Заголовки)
├── Вкладка "Body" (Тело запроса для POST/PUT)
├── Вкладка "Tests" (Скрипты для проверок)
└── Панель ответа (Status, Time, Size, Body)
5. Создаем сложный сценарий: Запуск миссии
Тест: Добавление новой планеты в каталог
-
Метод: POST
-
URL:
https://jsonplaceholder.typicode.com/posts
(пример) -
В Headers:
- В Body (raw → JSON):
Автоматическая проверка в Tests:
// Проверка статуса
pm.test("Post created successfully", () => {
pm.response.to.have.status(201);
});
// Проверка структуры и данных ответа
pm.test("Response contains the new post data", () => {
const response = pm.response.json();
pm.expect(response).to.have.property("id"); // Проверяем, что сервер присвоил ID
pm.expect(response.title).to.eql("New Exoplanet Found");
});
6. Переменные окружений: Земля vs Марс
Как тестировать на разных серверах (тестовый/боевой)?
- Создайте окружения:
Local
→http://localhost:3000
-
Production
→https://api.nasa.gov
-
В запросах используйте переменные:
⚠️ Важно! Никогда не тестируйте
DELETE
на боевом сервере!
7. Коллекции: Библиотека космических миссий
Группируйте запросы:
Преимущества:- 🚀 Запуск всех тестов одной кнопкой
- 📤 Экспорт/импорт конфигураций
- 👨🚀 Совместная работа команды
8. Автоматизация: Регулярные проверки спутников
Настройте мониторинг API через Postman:
-
Schedule → Каждые 2 часа
-
Тесты:
-
Уведомления в Slack/email при сбое
Квиз для закрепления
🚀 Итог главы: Postman — ваш универсальный "пульт управления" для тестирования API. С ним вы: - Проверите работу "бортовых систем" до запуска - Создадите библиотеку тестовых сценариев - Автоматизируете мониторинг космических сервисов
📌 Практическое задание:
- Установите Postman
- Создайте запрос к SpaceX API:
GET https://api.spacexdata.com/v4/launches/latest
- Напишите тест, проверяющий что:
- Статус ответа
200
- В поле
name
есть слово "Falcon"- Время ответа < 500 мс
Поздравляем с завершением Главы 1!
Вы освоили основы работы с API. В следующих главах мы построим собственный "космический корабль" — веб-приложение, использующее космические API!
🌌 Дополнительные ресурсы: