Как можно протестировать API, что там нужно проверять?
1️⃣ Типы тестирования API
Функциональное тестирование
Проверяем, что API делает то, что должно.
Примеры:
Запрос к
/users/123
возвращает пользователя с ID 123.При создании нового ресурса возвращается корректный
status code
(201 Created) и тело ответа с нужными полями.Валидация входных данных: что происходит при передаче пустых, неверных или неожиданных значений.
Тестирование ошибок и граничных значений
Проверяем, как API реагирует на некорректные данные.
Примеры:
Неверный формат JSON.
Пустые или лишние поля.
Некорректные параметры запроса.
Ожидается, что сервер возвращает корректные ошибки (например, 400, 404, 422).
Тестирование производительности
Проверка скорости ответа и устойчивости под нагрузкой.
Примеры:
Сколько времени занимает обработка запроса.
Как API ведет себя при 1000 одновременных запросах.
Используют инструменты типа JMeter, Locust, k6.
Тестирование безопасности
Проверяем авторизацию и аутентификацию.
Примеры:
Доступ к приватным ресурсам без токена запрещен (401/403).
Попытки SQL/XXS-инъекций.
Ограничения на количество запросов (rate limiting).
Тестирование совместимости / интеграции
Проверяем, как API взаимодействует с другими сервисами.
Примеры:
API внешней оплаты правильно обрабатывает статусы платежей.
Вебхуки приходят и обрабатываются корректно.
2️⃣ Что проверять в каждом запросе
HTTP-статус коды
2xx — успех (200, 201, 204)
4xx — ошибки клиента (400, 401, 403, 404, 422)
5xx — ошибки сервера (500, 502, 503)
Тело ответа (Response Body)
Формат (JSON, XML и т.д.)
Корректные поля и значения
Отсутствие лишних данных
Заголовки (Headers)
Content-Type (
application/json
)Авторизация, CORS, кеширование
Время отклика
API не должно отвечать слишком медленно (обычно <1–2 сек для большинства эндпоинтов)
Состояние сервера после запроса
Например, при создании/удалении ресурса, данные должны реально появляться или удаляться в базе
3️⃣ Инструменты для тестирования API
Postman / Insomnia — ручное тестирование и коллекции тестов.
Swagger / OpenAPI — документация + тестирование.
Automated testing:
Python:
requests
,pytest
+pytest-httpx
JS:
axios
+jest
/mocha
Java:
RestAssured
Load testing: JMeter, Locust, k6
Last updated
Was this helpful?