Что такое API веб-сервиса и как его тестировать?

«Что такое API веб-сервиса и как его тестировать?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

API (Application Programming Interface) веб-сервиса — это набор строго определенных правил (эндпоинтов, методов, форматов данных), позволяющий программам взаимодействовать с сервисом, минуя графический интерфейс.

Основные аспекты тестирования API:

Аспект тестирования Что проверять Пример инструмента/кода
Функциональность Корректность ответов на валидные и невалидные запросы. Postman, curl
Надёжность Стабильность работы под нагрузкой, обработка ошибок. JMeter, k6
Безопасность Аутентификация, авторизация, валидация входных данных. OWASP ZAP, Burp Suite
Производительность Время отклика, пропускная способность. JMeter, Gatling

Базовые проверки (на примере curl и Postman):

  1. Проверка кода состояния (Status Code):
    curl -s -o /dev/null -w "%{http_code}" https://api.example.com/health
    # Ожидается: 200
  2. Проверка структуры ответа (JSON Schema):
    // Тест в Postman
    pm.test("Response has valid schema", function() {
        const schema = {
            "type": "object",
            "properties": {
                "id": {"type": "number"},
                "name": {"type": "string"}
            },
            "required": ["id", "name"]
        };
        pm.response.to.have.jsonSchema(schema);
    });
  3. Проверка заголовков (Headers):
    curl -I https://api.example.com/users
    # Проверяем Content-Type: application/json

Ключевые артефакты: Для эффективного тестирования необходимы документация API (OpenAPI/Swagger) и тестовые данные.