Testador de mutacao de contrato API

Aplica mutacoes semanticas a campos OpenAPI e opcionalmente as envia para o backend real para medir a validacao defensiva

Cole um documento OpenAPI 3.x. A ferramenta primeiro monta requisicoes validas de base para cada operacao e depois transforma campos em variantes arriscadas, como omitir obrigatorios, usar numeros negativos, quebrar enums, enviar apenas espacos ou caracteres especiais.

Como usar:

  • Especificacao OpenAPI: cole YAML ou JSON
  • URL base: deixe vazia para apenas gerar o plano ou aponte para um backend real
  • Executar mutacoes: envia de fato as requisicoes mutadas
  • Cabecalho de autorizacao: aceita valores como Bearer
  • Mutacoes por campo: limita quantas variantes gerar por campo
  • Tempo limite: controla a duracao maxima de cada requisicao

Como ler o resultado:

  • defended: o backend rejeitou a mutacao
  • accepted: o backend ainda respondeu com sucesso
  • documented: o status observado existe em responses do OpenAPI

Exemplos de resultados

1 Exemplos

Verificar se o endpoint de cadastro rejeita mutacoes semanticas perigosas

Gera omissoes, numeros negativos e caracteres especiais a partir do 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 }

Fatos principais

Categoria
Desenvolvimento e Web
Tipos de entrada
textarea, text, checkbox, number
Tipo de saída
json
Cobertura de amostras
4
API disponível
Yes

Visão geral

O Testador de Mutação de Contrato API é uma ferramenta avançada que analisa sua especificação OpenAPI 3.x para gerar e aplicar mutações semânticas em campos de requisição. Ele permite identificar falhas de validação defensiva ao injetar valores arriscados, como omissão de campos obrigatórios, números negativos ou caracteres especiais, podendo testar essas variantes diretamente contra um backend real para verificar a resiliência da sua API.

Quando usar

  • Quando precisar auditar a cobertura de validação defensiva de uma API recém-desenvolvida.
  • Antes de liberar endpoints públicos para garantir que payloads malformados sejam rejeitados corretamente.
  • Para gerar planos de testes de segurança e robustez baseados diretamente no contrato OpenAPI.

Como funciona

  • Cole sua especificação OpenAPI 3.x (em formato YAML ou JSON) no campo principal.
  • Configure a URL base e o cabeçalho de autorização caso deseje executar as mutações contra um servidor real.
  • Defina o limite de mutações por campo e ative a execução para enviar as requisições alteradas.
  • Analise o relatório JSON gerado para ver quais mutações foram defendidas (rejeitadas) ou aceitas indevidamente pelo backend.

Casos de uso

Testar a resiliência de endpoints de cadastro contra dados de entrada inválidos ou maliciosos.
Validar se as restrições de esquema (como minLength, enums e required) estão sendo aplicadas pelo servidor.
Automatizar a criação de cenários de teste de borda (edge cases) para equipes de QA.

Exemplos

1. Auditoria de endpoint de criação de usuário

Engenheiro de Segurança
Contexto
A equipe desenvolveu um novo endpoint de cadastro de usuários e precisa garantir que ele não aceite idades negativas ou e-mails sem formatação.
Problema
Verificar se o backend rejeita mutações semânticas perigosas baseadas no contrato OpenAPI.
Como usar
Cole o YAML do OpenAPI, preencha a URL base com o ambiente de staging, marque 'Executar mutações' e defina 'Mutações por campo' como 3.
Configuração de exemplo
{
  "baseUrl": "https://staging.api.exemplo.com",
  "executeMutations": true,
  "mutationsPerField": 3
}
Resultado
O relatório mostra quais mutações (como idade negativa) foram 'defended' (rejeitadas com erro 400) e quais foram 'accepted' indevidamente.

2. Geração de plano de testes offline

Analista de QA
Contexto
O QA precisa criar casos de teste negativos para uma API financeira, mas ainda não tem acesso ao ambiente de testes.
Problema
Mapear todas as possíveis falhas de validação de contrato sem enviar requisições reais.
Como usar
Insira o JSON do OpenAPI, deixe a 'URL base' vazia e mantenha 'Executar mutações' desmarcado.
Configuração de exemplo
{
  "executeMutations": false,
  "mutationsPerField": 5
}
Resultado
A ferramenta gera um JSON detalhando dezenas de mutações planejadas (ex: omissão de valor de transferência, violação de enum de moeda) para uso em scripts de teste futuros.

Testar com amostras

development

Hubs relacionados

FAQ

Quais formatos de especificação são suportados?

A ferramenta suporta documentos OpenAPI 3.x nos formatos YAML e JSON.

A ferramenta envia requisições reais para a minha API?

Apenas se você preencher a 'URL base' e marcar a opção 'Executar mutações'. Caso contrário, ela apenas gera o plano de mutação offline.

O que significa uma mutação 'accepted' no resultado?

Significa que o backend processou a requisição mutada com sucesso (ex: HTTP 200), o que pode indicar uma falha na validação defensiva da API.

Como posso autenticar as requisições de teste?

Você pode fornecer um token no campo 'Cabeçalho de autorização', utilizando formatos padrão como 'Bearer <seu_token>'.

Quais tipos de mutações são geradas?

O sistema gera omissões de campos obrigatórios, violações de enum, números negativos ou fora do limite, strings vazias e injeção de caracteres especiais.

Documentação da API

Ponto final da solicitação

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

Parâmetros da solicitação

Nome do parâmetro Tipo Requerido Descrição
openApiSpec textarea Sim -
baseUrl text Não -
executeMutations checkbox Não -
authorizationHeader text Não -
mutationsPerField number Não -
timeoutMs number Não -

Formato de resposta

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

Documentação de MCP

Adicione este ferramenta à sua configuração de servidor MCP:

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

Você pode encadear várias ferramentas, ex: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, máx 20 ferramentas.

Se você encontrar algum problema, por favor, entre em contato conosco em [email protected]