Sobes.tech
Назад к вопросам
Junior — Middle
78

Какими методами и инструментами вы предпочитаете проверять работоспособность API?

Компании, где спрашивали
IT OneIT One
Т-БанкТ-Банк

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Обычно важно услышать, что проверка API — это не только «отправить запрос и посмотреть ответ», а системный набор проверок: статус-коды, схема и содержимое ответа, негативные сценарии, авторизация и стабильность. Хорошо, если перечислены как ручные, так и автоматизированные инструменты. Также важно показать, что подход выбирается в зависимости от задачи: быстрая проверка, регресс, интеграционные тесты или нагрузка.

Определение:

Проверка работоспособности API — это валидация того, что сервис корректно принимает запросы, обрабатывает их по контракту и возвращает ожидаемый ответ. Обычно проверяют не только HTTP-статус, но и формат данных, бизнес-логику, ошибки, безопасность и поведение под разными входными данными. Для этого используют как GUI-инструменты для ручной диагностики, так и автоматические тесты в CI.

Пример использования:

Для быстрой ручной проверки удобно использовать Postman или Insomnia: отправить запрос, проверить статус 200, тело ответа, заголовки и авторизацию. Для автоматизации — написать тесты на Python с pytest и requests, либо использовать pytest + allure для отчётности. Для контрактной проверки схемы ответа иногда применяют JSON Schema в тестах.

import requests

def test_get_user():
    response = requests.get("https://api.example.com/users/1", headers={"Authorization": "Bearer token"})
    
    assert response.status_code == 200
    data = response.json()
    assert "id" in data
    assert data["id"] == 1
    assert "name" in data

Пояснение кода:

В примере отправляется GET-запрос к API пользователя с заголовком авторизации. Затем проверяется, что сервер вернул успешный статус 200. После этого ответ преобразуется в JSON и проверяется наличие ключей id и name, а также ожидаемое значение id. Такой тест позволяет быстро поймать проблемы с доступом, контрактом ответа и базовой бизнес-логикой.

Ключевые моменты:

  • Для ручной проверки чаще всего использую Postman, Insomnia, curl.
  • Для автоматизации — pytest, requests, иногда allure для отчётов.
  • Проверяю не только статус-код, но и структуру ответа, поля, заголовки, ошибки и авторизацию.
  • Отдельно делаю негативные тесты: невалидные данные, отсутствие токена, неправильные методы.
  • Для сложных API полезны контрактные проверки и валидация схемы ответа.
  • Для регрессии и CI важнее автоматические тесты, для быстрой диагностики — ручные инструменты.