Тестер мутаций API-контракта

Применяет семантические мутации к полям OpenAPI и при необходимости отправляет их на реальный backend для проверки защитной валидации

Вставьте документ OpenAPI 3.x, и инструмент сначала соберет валидные базовые запросы для каждой операции. Затем поля будут изменены в рискованные варианты: удаление обязательных значений, отрицательные числа, нарушения enum, строки из пробелов и спецсимволы.

Как использовать:

  • Спецификация OpenAPI: вставьте YAML или JSON
  • Базовый URL: оставьте пустым для офлайн-плана или укажите реальный backend для запуска
  • Выполнять мутации: отправляет мутированные запросы
  • Заголовок авторизации: можно передать Bearer token и т.п.
  • Мутаций на поле: ограничивает число вариантов на поле
  • Таймаут запроса: ограничивает время каждого запроса

Как читать результат:

  • defended: backend отклонил мутацию
  • accepted: backend все равно вернул успешный статус
  • documented: наблюдаемый статус присутствует в responses OpenAPI

Примеры результатов

1 Примеры

Проверить, отклоняет ли signup-эндпоинт опасные мутации

Генерирует пропуски, отрицательные числа и спецсимволы на основе OpenAPI.

{
  "summary": {
    "operations": 1,
    "generatedMutations": 8,
    "executedMutations": 0,
    "acceptedMutations": 0,
    "defendedMutations": 0
  },
  "mutations": [
    {
      "fieldPath": "body.email",
      "mutation": "Inject special characters"
    },
    {
      "fieldPath": "body.age",
      "mutation": "Negative numeric mutation"
    }
  ]
}
Показать параметры ввода
{ "openApiSpec": "openapi: 3.0.3\npaths:\n /users:\n post:\n requestBody:\n required: true\n content:\n application/json:\n schema:\n type: object\n required: [email, role, age]\n properties:\n email: { type: string, minLength: 5 }\n role: { type: string, enum: [admin, member] }\n age: { type: integer, minimum: 18 }\n responses:\n \"201\": { description: created }\n \"400\": { description: invalid }\n", "baseUrl": "", "executeMutations": false, "authorizationHeader": "", "mutationsPerField": 3, "timeoutMs": 8000 }

Ключевые факты

Категория
Разработка и Web
Типы входных данных
textarea, text, checkbox, number
Тип результата
json
Покрытие примерами
4
API доступен
Yes

Обзор

Тестер мутаций API-контракта — это инструмент для автоматической проверки надежности вашего API. Он анализирует спецификацию OpenAPI 3.x, генерирует базовые запросы и применяет к ним семантические мутации, такие как удаление обязательных полей, отправка отрицательных чисел или спецсимволов. Вы можете сгенерировать план тестирования офлайн или отправить мутированные запросы на реальный сервер, чтобы выявить слабые места в защитной валидации бэкенда.

Когда использовать

  • Перед релизом нового API для проверки обработки некорректных данных и граничных значений.
  • При аудите безопасности существующих эндпоинтов на уязвимости к нестандартным payload.
  • Для проверки соответствия реального поведения бэкенда заявленной спецификации OpenAPI.

Как это работает

  • Вставьте спецификацию OpenAPI 3.x в формате YAML или JSON.
  • Укажите базовый URL и заголовок авторизации, если хотите выполнить реальные запросы к серверу.
  • Настройте количество мутаций на поле и включите опцию выполнения запросов.
  • Получите JSON-отчет со статусами мутаций: отклонено сервером (defended) или ошибочно принято (accepted).

Сценарии использования

Автоматизированное тестирование граничных значений числовых и строковых параметров API.
Поиск скрытых багов валидации, когда сервер принимает данные, нарушающие схему OpenAPI.
Генерация отчетов о покрытии защитной валидации для QA-инженеров и разработчиков.

Примеры

1. Проверка эндпоинта регистрации пользователей

QA-инженер
Контекст
Команда разработала новый API для регистрации, который требует email, роль и возраст.
Проблема
Нужно убедиться, что сервер не принимает отрицательный возраст или некорректные роли, не отправляя реальные запросы на данном этапе.
Как использовать
Вставить YAML-схему эндпоинта /users, указать количество мутаций на поле равным 3 и запустить генерацию без выполнения.
Пример конфигурации
mutationsPerField: 3, executeMutations: false
Результат
Инструмент генерирует JSON-план с 8 мутациями, включая отправку отрицательного возраста и спецсимволов в email, готовый для анализа.

2. Активное тестирование валидации на staging-сервере

Backend-разработчик
Контекст
Разработчик хочет проверить, как текущий код обрабатывает пропущенные обязательные поля и неверные типы данных.
Проблема
Ручное составление некорректных запросов для десятков полей занимает слишком много времени.
Как использовать
Вставить спецификацию, указать базовый URL staging-сервера, добавить Bearer токен и включить выполнение мутаций.
Пример конфигурации
baseUrl: https://staging.api.com, executeMutations: true, authorizationHeader: Bearer token123
Результат
Инструмент отправляет мутированные запросы на сервер и возвращает отчет, показывающий, какие некорректные запросы были ошибочно обработаны со статусом 200 (accepted), а какие успешно заблокированы (defended).

Проверить на примерах

development

Связанные хабы

FAQ

Какие типы мутаций поддерживает инструмент?

Инструмент генерирует пропуски обязательных полей, отрицательные числа, нарушения перечислений (enum), пустые строки и спецсимволы.

Обязательно ли отправлять запросы на реальный сервер?

Нет, если оставить базовый URL пустым и не включать выполнение, инструмент просто сгенерирует JSON-план мутаций для ознакомления.

Поддерживается ли OpenAPI версии 2.0 (Swagger)?

Нет, инструмент работает только со спецификациями формата OpenAPI 3.x.

Как инструмент понимает, что мутация успешно заблокирована?

Если сервер возвращает статус ошибки (например, 400 Bad Request), мутация помечается как защищенная (defended). Если возвращается успешный статус (2xx) — как принятая (accepted).

Как передать токен авторизации для защищенных эндпоинтов?

Используйте поле «Заголовок авторизации», указав полное значение, например «Bearer ваш_токен».

Документация API

Конечная точка запроса

POST /ru/api/tools/api-contract-mutation-tester

Параметры запроса

Имя параметра Тип Обязательно Описание
openApiSpec textarea Да -
baseUrl text Нет -
executeMutations checkbox Нет -
authorizationHeader text Нет -
mutationsPerField number Нет -
timeoutMs number Нет -

Формат ответа

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Данные JSON: Данные JSON

Документация MCP

Добавьте этот инструмент к конфигурации сервера MCP:

{
  "mcpServers": {
    "elysiatools-api-contract-mutation-tester": {
      "name": "api-contract-mutation-tester",
      "description": "Применяет семантические мутации к полям OpenAPI и при необходимости отправляет их на реальный backend для проверки защитной валидации",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=api-contract-mutation-tester",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Вы можете объединять несколько инструментов, например: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, максимум 20 инструментов.

Если вы столкнулись с проблемами, пожалуйста, свяжитесь с нами по адресу [email protected]