Bora-QA / curso-api-com-supertest

Repositório do curso 'Automação de API com SuperTest'

Home Page:http://boraqa.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

📖 (Curso) Automação de API com SuperTest

Um curso do Bora QA para a comunidade de testes ❤️


O que irei aprender?

  1. Automatizar os verbos HTTP GET, POST, PUT e DELETE em Javascript com SuperTest.
  2. Gerar report HTML com o resultado.
  3. Utilizar dados fakes.
  4. Executar o mesmo teste em ambientes diferentes.
  5. Manter um código bem estruturado.

Tirando dúvidas

As dúvidas devem ser tiradas na aba de issues do repositório.

O que preciso saber antes de iniciar?

  • Básico de Javascript e NPM.
  • Teste manual em API Rest
    • Saber o que é API
    • Saber fazer uma request (pelo Postman, SoapUI ou outra ferramenta com interface)
    • Utilizar os verbos HTTP get, post, put e delete
    • Saber o que é JSON
    • Conhecer as partes de uma request, como body e header
    • Status code (200, 404, 500, etc)

Material de apoio para adquirir os pré-requisitos

Javascript e NPM

Teste em API Rest

O que preciso ter na máquina?

  • Visual Studio Code ou outra IDE de sua preferência.
  • Node
    • Para verificar se a instalação foi feita com sucesso, execute npm -v e node -v no terminal. Se ambos os comandos retornarem número de versão, então está tudo certo.

Ferramentas que serão utilizadas

  1. Mocha (runner, estrutura)
  2. Mochawesome (mochawesome)
  3. Chai (asserção)
  4. SuperTest (request)
  5. Faker (dados fakes)
  6. Standard (lint)
  7. ServeRest (API a ser testada)

Grade

Expanda para ver a grade
  1. Introdução

    • Qual o objetivo desse curso
    • curso para todos os níveis, desde que cumpram com os pré-requisitos de básico de JS e saiba testar webAPI REST manualmente
  2. Iniciando o projeto e organizando a estrutura dos testes

    • npm init - iniciar projeto
      • npm install mocha
    • configurar .mocharc.js
    • inserir execução dos testes no script 'npm t'
    • explicar describe e it
  3. Fazendo GET

    • npm install supertest
    • explicar serverest
    • primeiro teste
      • get em usuarios
    • GET com query string
    • usar chai para validar o retorno
      • npm install chai
  4. Fazendo POST

    • fazer POST usuarios
    • cenarios: cadastro com sucesso E bad request
    • refatorar GET /usuarios para cadastrar usuario no inicio
  5. DESAFIO 1

    • Em POST de /usuarios, criar automação que valide que o e-mail já está sendo utilizado.
  6. Usando dados aleatórios

    • faker - usar dados aleatórios em POST e GET usuarios
      • npm install faker
  7. Fazendo um pouco mais de POST enviando header

    • POST login e enviar auth no header de POST produtos
  8. Organizando o código antes de aprendermos mais

    • estruturar os testes dentro de test/{usuarios, produtos}
    • criar o global.js para centralizar o supertest
  9. Configurando report HTML

    • report HTML - instalar mochawesome
    • lembrar para inserir report/ no .gitignore
  10. Fazendo DELETE

    • DELETE usuarios
  11. Reaproveitando código

    • criar index com POST usuarios
    • refatorar DELETE /usuarios - colocar p criar usuario antes de cada teste
    • refatorar GET /usuarios - colocar p criar usuario antes de cada teste
  12. DESAFIO 2

    • Reescrever POST de /produtos, reaproveitando /login e POST /usuarios em index
  13. Fazendo PUT

    • atualizar dados - PUT produtos
      • ordem das requests > post login, post produtos, put produto
    • inserir /cadastro e /login no beforeEach
  14. DESAFIO 3

    • Reescrever o PUT de /produtos para que fique enxuto, levando alguns códigos para index
  15. Executar os testes em ambientes diferentes

    • criar diretório config
    • ajustar global.js
  16. Padronizar o código

    • install standard
  17. Sobrescrever configuração do Mocha no terminal

  18. Encerramento do curso

Material complementar

Liceça

A licença do material está em Bora-QA/Licença.

About

Repositório do curso 'Automação de API com SuperTest'

http://boraqa.org


Languages

Language:JavaScript 100.0%