Probador de mutacion de contrato API

Aplica mutaciones semanticas a campos OpenAPI y opcionalmente las envia al backend real para medir su validacion defensiva

Pega un documento OpenAPI 3.x y la herramienta generara primero solicitudes base validas por operacion. Despues muta campos hacia variantes riesgosas como omitir obligatorios, usar negativos, romper enums, enviar solo espacios o caracteres especiales.

Como usar:

  • Especificacion OpenAPI: pega YAML o JSON
  • Base URL: dejala vacia para solo generar el plan, o apunta a un backend real para ejecutar
  • Ejecutar mutaciones: envia las solicitudes mutadas
  • Cabecera de autorizacion: acepta valores como Bearer
  • Mutaciones por campo: limita cuantas variantes generar por campo
  • Tiempo limite: controla cuanto puede durar cada solicitud

Lectura del resultado:

  • defended: el backend rechazo la mutacion
  • accepted: el backend devolvio exito pese a la mutacion
  • documented: el codigo observado aparece en responses de OpenAPI

Resultados de ejemplo

1 Ejemplos

Comprobar si el endpoint de registro rechaza mutaciones semanticas

Genera omisiones, numeros negativos y caracteres especiales a partir del contrato 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"
    }
  ]
}
Ver parámetros de entrada
{ "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 }

Datos clave

Categoría
Desarrollo y Web
Tipos de entrada
textarea, text, checkbox, number
Tipo de salida
json
Cobertura de muestras
4
API disponible
Yes

Resumen

El Probador de mutación de contrato API es una herramienta avanzada diseñada para evaluar la robustez de tu backend. Al analizar tu especificación OpenAPI 3.x, genera solicitudes base válidas y aplica mutaciones semánticas de riesgo (como omitir campos obligatorios, enviar números negativos o caracteres especiales) para comprobar si tu API rechaza correctamente las entradas inválidas. Puedes generar un plan de pruebas sin conexión o ejecutar las mutaciones directamente contra tu servidor para medir la cobertura de validación defensiva.

Cuándo usarlo

  • Cuando necesites auditar la seguridad y la validación de datos de una API REST antes de pasar a producción.
  • Para descubrir vulnerabilidades o comportamientos inesperados al recibir datos malformados, valores nulos o tipos incorrectos.
  • Al verificar que las respuestas de error de tu backend coinciden con los códigos de estado documentados en tu especificación OpenAPI.

Cómo funciona

  • Pega tu documento OpenAPI 3.x en formato YAML o JSON en el campo de especificación.
  • Configura la URL base y la cabecera de autorización si deseas ejecutar las pruebas contra un entorno real, o déjalos en blanco para solo generar el plan de mutación.
  • Ajusta el número de mutaciones por campo y el tiempo límite, luego activa 'Ejecutar mutaciones' para enviar las solicitudes alteradas.
  • Revisa el informe JSON resultante para ver qué mutaciones fueron defendidas (rechazadas) y cuáles fueron aceptadas erróneamente por el servidor.

Casos de uso

Pruebas de seguridad (Fuzzing) para identificar brechas en la validación de datos de entrada en microservicios.
Verificación de cumplimiento del contrato API (Contract Testing) entre equipos de frontend y backend.
Automatización de pruebas de control de calidad (QA) para asegurar que los endpoints manejan correctamente los casos límite y valores atípicos.

Ejemplos

1. Prueba de validación en endpoint de registro de usuarios

Ingeniero de QA
Contexto
El equipo acaba de implementar un nuevo endpoint para registrar usuarios y necesita asegurar que no se puedan crear cuentas con edades negativas o correos inválidos.
Problema
Verificar si el backend rechaza correctamente las solicitudes que violan las reglas del esquema OpenAPI.
Cómo usarlo
Pega el YAML del contrato OpenAPI, introduce la URL del entorno de pruebas, marca 'Ejecutar mutaciones' y establece 3 mutaciones por campo.
Configuración de ejemplo
{"baseUrl": "https://api.sandbox.example.com", "executeMutations": true, "mutationsPerField": 3}
Resultado
El informe muestra que la mutación de 'edad negativa' fue defendida (rechazada con 400), pero la inyección de caracteres especiales en el email fue aceptada, revelando un bug de validación.

2. Generación de plan de pruebas offline

Desarrollador Backend
Contexto
Un desarrollador está escribiendo pruebas unitarias para un nuevo servicio y necesita ideas sobre qué casos límite probar.
Problema
Obtener una lista exhaustiva de posibles mutaciones de entrada sin enviar tráfico real al servidor.
Cómo usarlo
Pega el JSON de la especificación OpenAPI, deja la URL base vacía y desactiva la ejecución de mutaciones.
Resultado
Se genera un documento JSON con decenas de casos de prueba estructurados (omisión de campos, violaciones de enum) listos para ser implementados en el código de pruebas del proyecto.

Probar con muestras

development

Hubs relacionados

Preguntas frecuentes

¿Qué tipos de mutaciones aplica la herramienta?

Aplica mutaciones semánticas como la omisión de campos obligatorios, inyección de caracteres especiales, números negativos o fuera de rango, violaciones de enumeraciones (enums) y cadenas vacías.

¿Es obligatorio ejecutar las mutaciones contra un servidor real?

No, puedes dejar la URL base vacía y desactivar la ejecución para generar únicamente un plan de mutaciones en formato JSON y analizar los casos de prueba.

¿Qué significa que una mutación sea 'defended' o 'accepted'?

'Defended' significa que tu backend rechazó correctamente la solicitud malformada (por ejemplo, con un error 400). 'Accepted' indica que el servidor procesó la solicitud con éxito, lo que revela una falta de validación.

¿Soporta autenticación para probar endpoints protegidos?

Sí, puedes proporcionar un token en el campo 'Cabecera de autorización' (por ejemplo, 'Bearer tu_token') para autenticar las solicitudes mutadas.

¿Qué versiones de OpenAPI son compatibles?

La herramienta soporta especificaciones OpenAPI en su versión 3.x, tanto en formato YAML como JSON.

Documentación de la API

Punto final de la solicitud

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

Parámetros de la solicitud

Nombre del parámetro Tipo Requerido Descripción
openApiSpec textarea -
baseUrl text No -
executeMutations checkbox No -
authorizationHeader text No -
mutationsPerField number No -
timeoutMs number No -

Formato de respuesta

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Datos JSON: Datos JSON

Documentación de MCP

Agregue este herramienta a su configuración de servidor MCP:

{
  "mcpServers": {
    "elysiatools-api-contract-mutation-tester": {
      "name": "api-contract-mutation-tester",
      "description": "Aplica mutaciones semanticas a campos OpenAPI y opcionalmente las envia al backend real para medir su validacion defensiva",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=api-contract-mutation-tester",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Puede encadenar múltiples herramientas, por ejemplo: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máximo 20 herramientas.

Si encuentra algún problema, por favor, póngase en contacto con nosotros en [email protected]