Ответ
У меня есть опыт комплексного тестирования backend-сервисов, включая REST и GraphQL API. Основные направления моей работы:
- API-тестирование: Валидация эндпоинтов, статус-кодов, схем ответов (использую JSON Schema или Pydantic), обработки ошибок и граничных случаев.
- Интеграционное тестирование: Проверка взаимодействия между микросервисами, с очередями сообщений (Kafka, RabbitMQ) и базами данных.
- Нагрузочное тестирование: Оценка производительности и стабильности с помощью инструментов вроде k6 или Locust.
- Контрактное тестирование: Использование Pact для проверки совместимости между потребителями и провайдерами API.
Пример теста на Python (pytest + requests):
import pytest
import requests
def test_create_order_returns_201():
"""Тест на успешное создание заказа."""
url = "https://api.shop.com/orders"
payload = {"item_id": 123, "quantity": 2}
headers = {"Authorization": "Bearer token123"}
response = requests.post(url, json=payload, headers=headers)
assert response.status_code == 201
response_json = response.json()
assert "order_id" in response_json
assert isinstance(response_json["order_id"], str)
assert len(response_json["order_id"]) == 36 # Проверяем формат UUID
def test_get_nonexistent_user_returns_404():
"""Тест на корректную обработку несуществующего ресурса."""
response = requests.get("https://api.shop.com/users/99999")
assert response.status_code == 404
assert response.json()["error"] == "User not found"
Для ручного тестирования и исследования API активно использую Postman (с коллекциями и окружениями), а для документирования и валидации схем — Swagger/OpenAPI.