Как можно протестировать API, что там нужно проверять?

1️⃣ Типы тестирования API

  1. Функциональное тестирование

    • Проверяем, что API делает то, что должно.

    • Примеры:

      • Запрос к /users/123 возвращает пользователя с ID 123.

      • При создании нового ресурса возвращается корректный status code (201 Created) и тело ответа с нужными полями.

      • Валидация входных данных: что происходит при передаче пустых, неверных или неожиданных значений.

  2. Тестирование ошибок и граничных значений

    • Проверяем, как API реагирует на некорректные данные.

    • Примеры:

      • Неверный формат JSON.

      • Пустые или лишние поля.

      • Некорректные параметры запроса.

    • Ожидается, что сервер возвращает корректные ошибки (например, 400, 404, 422).

  3. Тестирование производительности

    • Проверка скорости ответа и устойчивости под нагрузкой.

    • Примеры:

      • Сколько времени занимает обработка запроса.

      • Как API ведет себя при 1000 одновременных запросах.

    • Используют инструменты типа JMeter, Locust, k6.

  4. Тестирование безопасности

    • Проверяем авторизацию и аутентификацию.

    • Примеры:

      • Доступ к приватным ресурсам без токена запрещен (401/403).

      • Попытки SQL/XXS-инъекций.

      • Ограничения на количество запросов (rate limiting).

  5. Тестирование совместимости / интеграции

    • Проверяем, как API взаимодействует с другими сервисами.

    • Примеры:

      • API внешней оплаты правильно обрабатывает статусы платежей.

      • Вебхуки приходят и обрабатываются корректно.


2️⃣ Что проверять в каждом запросе

  1. HTTP-статус коды

    • 2xx — успех (200, 201, 204)

    • 4xx — ошибки клиента (400, 401, 403, 404, 422)

    • 5xx — ошибки сервера (500, 502, 503)

  2. Тело ответа (Response Body)

    • Формат (JSON, XML и т.д.)

    • Корректные поля и значения

    • Отсутствие лишних данных

  3. Заголовки (Headers)

    • Content-Type (application/json)

    • Авторизация, CORS, кеширование

  4. Время отклика

    • API не должно отвечать слишком медленно (обычно <1–2 сек для большинства эндпоинтов)

  5. Состояние сервера после запроса

    • Например, при создании/удалении ресурса, данные должны реально появляться или удаляться в базе


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?