Objetivo: Orientar os analistas de qualidade na criação de automações de testes de API. Os testes utilizam JavaScript e as funções nativas do objeto pm.
Objetos e Conceitos Base
pm
O objeto pm no Postman é um objeto global e central utilizado nos scripts (Pre-request Scripts e Tests) para interagir com a requisição e a resposta da API. Ele funciona como uma "caixa de ferramentas", fornecendo acesso a informações sobre o que está sendo enviado e recebido, além de gerenciar variáveis.
Funções Principais
pm.test()
Cria testes automatizados com afirmações (assertions) para verificar se a API funciona corretamente. O nome do teste aparece no relatório final.
pm.expect()
Função responsável por realizar validações. Ela define o que você espera que um valor seja. É usada dentro do pm.test() e funciona em conjunto com “encadeadores” para criar frases lógicas (ex: .to.be.equal).
pm.response.*
Acessa os dados da resposta, como o status code, corpo (JSON/texto), tempo de resposta e cabeçalhos.
pm.response.json()
Converte o corpo da resposta da API, que chega como string, em um objeto Javascript. Isso é essencial para navegarmos pelas propriedades do JSON.
Gerenciamento de Variáveis
pm.variables.get()
Busca uma variável em qualquer um dos escopos (Global, Ambiente ou Coleção). Nosso projeto prioriza variáveis associadas à Coleção.
pm.variables.set()
Define ou atualiza o valor de uma variável no escopo da Coleção. Muito utilizada para passar dados de uma requisição para outra (ex: salvar um ID retornado no POST para usar no GET seguinte).
Asserções Comuns (Matchers)
.to.have.status()
Verifica se o código do status HTTP da resposta é o esperado.
.to.be.below() (Performance)
Verifica se o tempo de resposta está dentro do limite aceitável.
.to.be.a() (Tipagem)
Verifica se o dado recebido é do tipo esperado (string, number, boolean, array).
Validações Avançadas
Validação de Contrato (JSON Schema)
Em vez de validar campo por campo, validamos a estrutura completa. Isso garante que qualquer mudança no nome ou tipo de um campo no backend seja detectada.
Scripts de Coleção (Testes Globais)
Para evitar repetição de código, podemos adicionar testes na raiz da Coleção. Isso fará com que toda requisição dentro dessa coleção valide automaticamente, por exemplo, se o status é 200 ou se o tempo de resposta é baixo, sem precisar escrever o código em cada endpoint.
Pre-request Scripts (Dados Dinâmicos)
Utilize a aba Pre-request para gerar dados aleatórios antes do envio, evitando falhas por dados duplicados (ex: cadastrar o mesmo e-mail duas vezes).
Para fechar esse documento com "chave de ouro" e deixá-lo com um nível bem sênior, eu recomendo adicionar três tópicos que são as dores mais comuns de quem automatiza APIs: Tratamento de erros, Validação de Headers e Limpeza de dados.
Aqui estão as seções complementares para você inserir ao final do documento:
Tópicos Complementares (Nível Sênior)
1. Validação de Headers (Segurança e Formato)
Não basta o corpo estar certo, os cabeçalhos garantem que a comunicação é segura e no formato correto.
2. Tratamento de Erros de Script (Fail-Fast)
Se a API retornar um erro 500 (HTML), o comando pm.response.json() vai quebrar o script e os testes seguintes não rodarão. Use essa verificação para evitar o "erro no teste":
3. Limpeza de Variáveis (Data Cleanup)
Para evitar que uma variável de um teste anterior interfira no próximo (efeito colateral), adicione a limpeza no final do último teste da pasta:
4. Uso de Snippets úteis
O Postman possui uma aba lateral chamada Snippets.
Dica: Sempre que esquecer uma sintaxe, use os Snippets à direita da tela de scripts. Eles cobrem 80% das necessidades básicas e ajudam a ganhar velocidade.
Comentários
0 comentário
Escreva seu comentário aqui
Por favor, entre para comentar.