Pular para o conteúdo
SDETRole
SDETRole

Testes de API

Gerador de payloads de API

Transforme um JSON Schema ou exemplo em payloads válidos e negativos.

Roda inteiramente no seu navegador Sem cadastro

JSON Schema or sample payload

0 chars

Valid payload

Sobre esta ferramenta

Fazer testes negativos em um endpoint significa enviar o mesmo body várias vezes com exatamente uma coisa errada. Escrever essas variações à mão é lento e é fácil esquecer alguma. Cole um JSON Schema e esta ferramenta percorre as palavras-chave type, required, enum, minimum/maximum, minLength/maxLength, format e items para montar um payload válido e, em seguida, gera uma variação por regra: cada campo obrigatório removido, cada campo com tipo errado ou null, strings um caractere fora dos limites de tamanho, números um passo fora do intervalo, um valor de enum inválido, e-mails e datas malformados, uma propriedade extra desconhecida e um objeto vazio. Se colar um body de exemplo, todo campo presente é tratado como obrigatório e os formatos são inferidos dos valores. $ref, allOf/anyOf/oneOf e pattern não são resolvidos, então revise esses campos você mesmo.

Como usar

  1. Cole um JSON Schema ou um body de requisição real, ou carregue um dos exemplos. A detecção automática decide qual é; altere pelo seletor se necessário.
  2. Copie o payload válido para o seu teste de caminho feliz.
  3. Filtre as variações negativas por categoria, expanda qualquer uma para inspecionar ou copiar, ou exporte todas como um array JSON de {name, payload} para alimentar um teste orientado a dados.

Perguntas frequentes: Gerador de payloads de API

O que é um payload de API?

Um payload de API são os dados transportados no body de uma requisição ou resposta, geralmente JSON em APIs REST. Por exemplo, uma requisição POST /users pode enviar {"name": "Asha", "email": "asha@example.com"}. O método, a URL e os headers descrevem a requisição; o payload é o seu conteúdo. Nos testes, os payloads de requisição são suas entradas e os de resposta são o que você valida com assertions, então ambos precisam seguir o contrato da API.

Como gerar payloads JSON para testes de API?

Comece pelo contrato da API. Cole o JSON Schema, ou um body de requisição real, neste gerador e ele monta um payload válido mais uma variação negativa por regra: campo obrigatório ausente, tipo errado, valor fora do intervalo, enum inválido e outras. Exporte como JSON e itere sobre elas nos testes. Para valores realistas em volume, use o gerador de massa de dados; para exemplos prontos, veja os exemplos de payload JSON.

O que um payload de requisição POST deve conter?

Exatamente o que o contrato da API exige para criar o recurso: todos os campos obrigatórios com tipo e formato corretos, mais os campos opcionais relevantes para o cenário. Não deve conter campos gerados pelo servidor, como id ou createdAt, a menos que a API os espere. Envie com o header Content-Type: application/json. Uma criação bem-sucedida geralmente retorna 201 Created com o novo recurso ou um header Location; um payload inválido deve retornar 400 ou 422 com um erro claro.

Como criar payloads para testes negativos?

Pegue um payload válido e quebre exatamente uma coisa por teste, para que uma falha aponte para uma única regra. Variações típicas: remover cada campo obrigatório, enviar o tipo errado ou null, exceder em um os limites de tamanho ou numéricos, usar um valor de enum inválido ou um e-mail malformado, adicionar uma propriedade desconhecida e enviar um objeto vazio. Cada uma deve ser rejeitada com status 4xx e uma mensagem de erro útil, nunca com 500. Este gerador cria essas variações automaticamente a partir de um schema.

Quais são os formatos comuns de payload JSON?

A maioria das APIs REST usa um objeto JSON, muitas vezes com objetos aninhados, como um usuário com address. Outros formatos comuns são arrays de objetos para operações em lote; envelopes que encapsulam os resultados em campos data e meta; requisições GraphQL com query e variables; e problem details da RFC 9457 para erros, com type, title, status e detail. Veja bodies realistas de requisição e resposta na biblioteca de exemplos de payload JSON.

Posso gerar massa de dados aleatória para testes de API?

Sim. Dados aleatórios encontram bugs que valores escolhidos a dedo deixam passar, mas devem ser reproduzíveis. O gerador de massa de dados cria nomes, e-mails, endereços, UUIDs, números e datas realistas com Faker, e uma seed fixa retorna sempre os mesmos dados, então um teste que falhou pode ser reexecutado. As bibliotecas Faker para JavaScript e Python, ou o Datafaker para Java, fazem o mesmo dentro dos seus testes. Para strings de casos extremos, use o gerador de strings de teste.

Que status code os payloads negativos devem produzir?

Normalmente 400 Bad Request ou 422 Unprocessable Content, com um body de erro indicando o campo. Seja qual for o que a API documenta, ele deve ser consistente entre os endpoints, e nenhuma dessas variações deve produzir 500.

Como uso o JSON exportado em um teste?

Carregue o array e itere sobre ele: no Playwright, for (const { name, payload } of variants) test(name, ...); no JUnit 5, use @MethodSource ou @ParameterizedTest com uma fonte JSON; no Postman, use-o como arquivo de dados do collection runner.

Por que “Null value” não é gerado para alguns campos?

Se o schema permite null em um campo (type: ["string", "null"] ou null no enum), enviar null é válido, então não é um caso negativo.

Digite para buscar em todo o SDETRole.

Busca de texto completo com Pagefind · roda no seu navegador Abrir página de busca →