Talking About TestingATT</>
Testes de API com Bruno

Acerte 100% do quiz para continuar

Aula
Prévia gratuita

Sua primeira requisição

Envie uma requisição GET, leia a resposta e verifique-a com asserções declarativas.

Vamos começar pela verificação mais importante de qualquer API, o caminho feliz: enviar uma requisição GET para o endpoint /emojis e confirmar que ela responde com sucesso, com o código de status 200 e um corpo com a estrutura esperada.

Explorando à mão, você enviaria a requisição, daria uma olhada na resposta e seguiria em frente. A diferença neste curso é que você escreve o que espera na forma de asserções, para que o Bruno verifique isso por você toda vez que a requisição rodar, inclusive no CI, quando ninguém está olhando.

Visão geral dos comandos 📖

Criando uma requisição

Clique com o botão direito na coleção na barra lateral (ou use o menu de três pontos dela) e escolha New Request. Dê um nome, escolha o método e digite a URL.

Sintaxe:

Name:   <um nome que descreva o que a requisição verifica>
Method: GET
URL:    http://localhost:3001/emojis
👨‍🏫 O nome vira o nome do arquivo no disco, e é o rótulo que você vai ler em todo relatório de execução. Dê nomes às requisições pelo que elas verificam, e não apenas pelo endpoint.

Enviando uma requisição e lendo o painel de resposta

Clique no botão de seta no fim da barra de URL (ou pressione Cmd+Enter / Ctrl+Enter). O painel de resposta à direita mostra:

  • O código e o texto do status (por exemplo, 200 OK)
  • O tempo que a requisição levou e o tamanho da resposta
  • O corpo da resposta, formatado como JSON
  • Os headers da resposta, em uma aba própria
👨‍🏫 A aba Timeline mostra a requisição exata que o Bruno enviou, com a URL final e os headers. Quando uma resposta surpreender você, confira o que foi realmente enviado antes de culpar a API.

A aba Assert (asserções declarativas)

A aba Assert permite escrever verificações sem escrever código. Cada linha tem três partes: uma expressão (o que verificar), um operador (como comparar) e um valor (o que você espera, quando o operador precisa de um).

Sintaxe:

<expressão>   <operador>   <valor>

Exemplo:

res.status              eq         200
res.body.emojis         isArray
res.body.pageInfo       isDefined

Alguns operadores que você vai usar com frequência:

  • eq e neq: igual e diferente
  • isArray, isNumber, isString, isDefined: verificações de tipo e de presença
  • gt, gte, lt, lte: comparações numéricas
  • length: o tamanho de um array ou de uma string

Depois de enviar a requisição, a aba Tests do painel de resposta lista cada asserção como aprovada ou reprovada.

Como uma asserção fica no disco

O Bruno salva a requisição, incluindo as suas asserções, como um arquivo YAML dentro da pasta da coleção:

Exemplo:

info:
  name: get-emojis
  type: http
  seq: 1

http:
  method: GET
  url: http://localhost:3001/emojis

runtime:
  assertions:
    - expression: res.status
      operator: eq
      value: "200"
    - expression: res.body.emojis
      operator: isArray
👨‍🏫 Você nunca precisa editar esse arquivo à mão, mas lê-lo uma vez explica por que as coleções do Bruno funcionam tão bem no git: uma nova asserção é um diff de duas linhas que qualquer pessoa consegue revisar.

Conteúdo sugerido 📚 e links da documentação 🔗

Exercício 🎯

Na sua coleção emoji-api-tests, crie uma requisição chamada get-emojis que envia um GET para http://localhost:3001/emojis. Envie-a e leia o painel de resposta.

Depois, na aba Assert, adicione asserções verificando que:

  • res.status é igual a 200
  • res.body.emojis é um array
  • res.body.pageInfo está definido
  • res.body.pageInfo.currentPage é igual a 1

Envie a requisição de novo e confirme que todas as asserções passam. Você pode ver o resultado de cada asserção, se passou ou falhou, na aba Tests do painel de resposta. Em seguida, mude o status esperado para 201, envie e veja essa asserção falhar. Volte para 200 antes de seguir em frente.

👨‍🏫 Ver uma asserção falhar de propósito não é perda de tempo. Uma asserção que você nunca viu falhar pode não estar verificando nada.

Salve a requisição (Cmd+S / Ctrl+S) e depois execute git status no terminal para ver o novo arquivo. Faça o commit e o push.

Mostre ao mundo o que você aprendeu 🌎

Para mostrar à sua rede profissional o que você aprendeu nesta aula, publique o seguinte no LinkedIn.

Estou fazendo o curso "Testes de API com Bruno" com @Walmyr Lima e Silva Filho na @Talking About Testing School, e acabei de criar a minha primeira requisição no Bruno com asserções declarativas sobre o código de status e o corpo da resposta, salva como um arquivo simples no meu repositório git. #TalkingAboutTesting #TATSchool #APITestingWithBruno #Bruno #APITesting

👨‍🏫 Lembre-se de me marcar na sua publicação. Aqui está o meu perfil no LinkedIn.

Quiz

Pergunta 1 de 2
Pontuação: 0

Por que vale a pena mudar uma asserção para que ela falhe de propósito, e depois desfazer a mudança?

Acerte 100% do quiz para continuar