Как вы тестируете внешние интеграции (API, микросервисы)?

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

Ответ

Тестирование интеграций фокусируется на надежности взаимодействия между системами.

Ключевые аспекты проверки:

  1. Контракты и форматы: соответствие спецификациям (OpenAPI/Swagger), валидация JSON/XML схем.
  2. Сетевые сценарии: обработка таймаутов, недоступности сервиса, некорректных статус-кодов.
  3. Безопасность: корректная работа аутентификации (OAuth, API-ключи) и авторизации.
  4. Данные: консистентность данных между системами, корректная сериализация/десериализация.
  5. Лимиты и производительность: соблюдение Rate Limiting, время отклика.

Пример теста API на Python с проверкой схемы:

import requests
from jsonschema import validate

def test_user_api_contract():
    schema = {
        "type": "object",
        "properties": {
            "id": {"type": "integer"},
            "email": {"type": "string", "format": "email"}
        },
        "required": ["id", "email"]
    }

    response = requests.get("https://api.example.com/users/1", 
                           headers={"Authorization": "Bearer token"})

    assert response.status_code == 200
    user_data = response.json()
    validate(instance=user_data, schema=schema)  # Валидация схемы
    assert user_data["id"] == 1

Инструменты: Postman, pytest + requests, RestAssured, мониторинг логов и метрик.