Acerte 100% do quiz para continuar
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 isDefinedAlguns operadores que você vai usar com frequência:
eqeneq: igual e diferenteisArray,isNumber,isString,isDefined: verificações de tipo e de presençagt,gte,lt,lte: comparações numéricaslength: 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 a200res.body.emojisé um arrayres.body.pageInfoestá definidores.body.pageInfo.currentPageé igual a1
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 executegit statusno 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
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