Skip to content

Latest commit

 

History

History
99 lines (70 loc) · 4.16 KB

File metadata and controls

99 lines (70 loc) · 4.16 KB

📘 Паттерны API тестирования

1. Типы тестов API

Тип теста Назначение
Smoke Проверка доступности и базового отклика API.
Functional Проверка, что методы API работают согласно спецификации.
Negative Проверка на ошибки при некорректных запросах (404, 400, 401, и т. д.).
Boundary Проверка граничных значений (например, лимиты на ввод).
Security Аутентификация, авторизация, SQL-инъекции, доступы.
Performance Проверка времени ответа, стабильности под нагрузкой.
Contract Проверка соответствия контракту (Swagger/OpenAPI).
Integration Проверка связки API с другими сервисами.

2. Структура теста запроса

Название: Получение информации о пользователе

Метод: GET
Эндпоинт: /api/v1/users/{id}

Параметры:
- Path: id = 123
- Headers: Authorization = Bearer <token>

Ожидаемый статус: 200 OK

Ожидаемый ответ:
{
  "id": 123,
  "name": "Valeria",
  "email": "valeria@example.com"
}

3. Паттерны построения запросов

📌 Reusable Requests

  • Использование переменных среды (URL, токен и др.).
  • Структурирование коллекций по модулям (авторизация, пользователи и т. д.).

📌 Data-Driven Testing

  • Хранение тестовых данных отдельно (JSON, CSV, YAML).
  • Подстановка данных динамически в запросы.

📌 Contract-First

  • Создание тестов на основе контракта (Swagger/OpenAPI).

4. Подходы к валидации

  • Статус-коды — проверка корректных HTTP-ответов
  • JSON-схема — валидация структуры ответа
  • Бизнес-логика — проверка логики и значений
  • Заголовки — Content-Type, Cache-Control и т.д.

5. Негативные кейсы (паттерны)

Сценарий Ожидаемый статус
Невалидный ID 400 или 404
Отсутствие токена 401 Unauthorized
Истекший токен 401 Unauthorized
Нет прав на ресурс 403 Forbidden
Несуществующий путь 404 Not Found
Метод не поддерживается 405 Method Not Allowed

6. Инструменты и практики

  • Postman / Insomnia — ручное тестирование, автотесты, документация
  • Newman — запуск коллекций Postman в CI
  • REST Assured / Supertest — автоматизация на Java/JS
  • Swagger/OpenAPI — спецификация, автогенерация
  • Charles / Fiddler — перехват и анализ трафика

7. Best Practices

✅ Используй окружения (dev/stage/prod) с переменными ✅ Разделяй позитивные и негативные кейсы ✅ Включай валидацию схемы ✅ Обновляй тесты при изменении спецификации ✅ Добавляй автотесты в CI/CD pipeline ✅ Документируй всё, что тестируешь