📘 Паттерны API тестирования
Тип теста
Назначение
Smoke
Проверка доступности и базового отклика API.
Functional
Проверка, что методы API работают согласно спецификации.
Negative
Проверка на ошибки при некорректных запросах (404, 400, 401, и т. д.).
Boundary
Проверка граничных значений (например, лимиты на ввод).
Security
Аутентификация, авторизация, SQL-инъекции, доступы.
Performance
Проверка времени ответа, стабильности под нагрузкой.
Contract
Проверка соответствия контракту (Swagger/OpenAPI).
Integration
Проверка связки API с другими сервисами.
2. Структура теста запроса
Название: Получение информации о пользователе
Метод: GET
Эндпоинт: /api/v1/users/{id}
Параметры:
- Path: id = 123
- Headers: Authorization = Bearer <token>
Ожидаемый статус: 200 OK
Ожидаемый ответ:
{
"id": 123,
"name": "Valeria",
"email": "valeria@example.com"
}
3. Паттерны построения запросов
Использование переменных среды (URL, токен и др.).
Структурирование коллекций по модулям (авторизация, пользователи и т. д.).
Хранение тестовых данных отдельно (JSON, CSV, YAML).
Подстановка данных динамически в запросы.
Создание тестов на основе контракта (Swagger/OpenAPI).
Статус-коды — проверка корректных HTTP-ответов
JSON-схема — валидация структуры ответа
Бизнес-логика — проверка логики и значений
Заголовки — Content-Type, Cache-Control и т.д.
5. Негативные кейсы (паттерны)
Сценарий
Ожидаемый статус
Невалидный ID
400 или 404
Отсутствие токена
401 Unauthorized
Истекший токен
401 Unauthorized
Нет прав на ресурс
403 Forbidden
Несуществующий путь
404 Not Found
Метод не поддерживается
405 Method Not Allowed
6. Инструменты и практики
Postman / Insomnia — ручное тестирование, автотесты, документация
Newman — запуск коллекций Postman в CI
REST Assured / Supertest — автоматизация на Java/JS
Swagger/OpenAPI — спецификация, автогенерация
Charles / Fiddler — перехват и анализ трафика
✅ Используй окружения (dev/stage/prod) с переменными
✅ Разделяй позитивные и негативные кейсы
✅ Включай валидацию схемы
✅ Обновляй тесты при изменении спецификации
✅ Добавляй автотесты в CI/CD pipeline
✅ Документируй всё, что тестируешь