Ответ
API тест-кейсы создаются для проверки бизнес-логики, интеграций и контрактов на уровне сервиса. Основные цели:
- Функциональность и корректность:
- Проверка HTTP-методов (GET, POST, PUT, DELETE).
- Валидация статус-кодов (200, 201, 400, 404, 500).
- Проверка структуры и данных в теле ответа (JSON/XML-схема).
- Обработка ошибок и граничные значения:
- Запросы с невалидными или отсутствующими параметрами.
- Проверка авторизации и прав доступа (токены, API-ключи).
- Тестирование лимитов (rate limiting).
- Интеграции и состояния:
- Создание, чтение, обновление и удаление сущностей (CRUD).
- Проверка согласованности данных между связанными API.
- Нефункциональные требования:
- Производительность (время ответа, нагрузочное тестирование).
- Безопасность (базовые проверки на инъекции, экспозицию данных).
Пример кода (Python, pytest + requests):
import requests
def test_create_item_returns_201():
"""Тест на успешное создание ресурса."""
url = "https://api.example.com/items"
payload = {"name": "New Item", "price": 100}
headers = {"Authorization": "Bearer token123"}
response = requests.post(url, json=payload, headers=headers)
assert response.status_code == 201
assert response.json()["id"] is not None
assert response.json()["name"] == payload["name"]
API-тестирование эффективно выявляет дефекты на ранних стадиях, до тестирования UI.