Ответ
Имею опыт комплексного тестирования REST и GraphQL API, включая автоматизацию.
Ключевые аспекты тестирования:
- Функциональность: Проверка эндпоинтов на соответствие спецификации (Swagger/OpenAPI).
- Надежность: Тестирование негативных сценариев (400, 404, 500 ошибки), валидации входных данных.
- Безопасность: Проверка авторизации (JWT, OAuth), прав доступа, инъекций.
- Производительность: Проверка времени ответа, нагрузочное тестирование (например, с Locust).
Пример автотеста на Python (pytest + requests):
import pytest
import requests
BASE_URL = "https://api.example.com/v1"
# Позитивный сценарий: получение ресурса
def test_get_user_success():
headers = {"Authorization": f"Bearer {valid_token}"}
response = requests.get(f"{BASE_URL}/users/1", headers=headers)
assert response.status_code == 200
data = response.json()
assert data["id"] == 1
assert "email" in data
# Валидация по JSON Schema (используя библиотеку jsonschema)
assert validate_schema(data, USER_SCHEMA)
# Негативный сценарий: запрос без авторизации
def test_get_user_unauthorized():
response = requests.get(f"{BASE_URL}/users/1")
assert response.status_code == 401
Инструменты: Postman (для ад-hoc тестов и коллекций), Swagger UI, Charles/Fiddler (для анализа трафика), специализированные библиотеки (requests, pytest, schemathesis для property-based тестирования).