Как протестировать API бэкенда без готового фронтенда?

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

Ответ

Для тестирования бэкенда в изоляции используйте следующие инструменты и подходы:

1. Инструменты для ручного тестирования API:

  • Postman / Insomnia — отправка HTTP-запросов с различными методами, заголовками и телами.
  • cURL — тестирование из командной строки.
# Пример cURL для POST-запроса
curl -X POST 'https://api.example.com/users' 
  -H 'Content-Type: application/json' 
  -d '{"name": "John", "email": "john@example.com"}'

2. Автоматизированное тестирование: Напишите автотесты на Python (pytest/requests), JavaScript (Jest/supertest) или другом языке.

import pytest
import requests

def test_create_user():
    url = "https://api.example.com/users"
    payload = {"name": "John", "email": "john@example.com"}
    headers = {"Content-Type": "application/json"}

    response = requests.post(url, json=payload, headers=headers)

    assert response.status_code == 201
    assert response.json()["id"] is not None
    # Проверка структуры ответа
    assert all(key in response.json() for key in ["id", "name", "email"])

3. Другие методы:

  • Swagger UI / OpenAPI — если документация сгенерирована, используйте встроенный интерфейс для отправки запросов.
  • Моки фронтенда — создайте простую HTML-страницу с JavaScript (например, на Fetch API) для имитации клиента.
  • Нагрузочное тестирование — используйте JMeter или k6 для проверки производительности API под нагрузкой.

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

  • Коды состояния HTTP (200, 201, 400, 404, 500).
  • Валидация данных (корректные/некорректные входные данные, граничные значения).
  • Структура и типы данных в ответе (JSON Schema).
  • Авторизация и аутентификация (заголовки, токены).
  • Обработка ошибок и информативные сообщения.
  • Логирование корректных событий и ошибок на стороне сервера.