Otimizando testes de GUI com de chamadas APIs
Nesta aula você vai aprender:
- Como inicializar a aplicação em teste utilizando Docker
- A importância do uso de containers para ambientes de testes automatizados
- Algumas funcionalidades da aplicação em teste, tais como troca de senha, login, criação de um Access Token e adição de uma chave SSH
Link do projeto no GitLab: https://gitlab.com/wlsf82/curso-cypress-intermediario
Link do projeto no GitHub (backup): https://github.com/wlsf82/curso-cypress-intermediario
Nesta aula você vai aprender:
- Como clonar um projeto git
- Como inicializar um projeto node com o NPM (Node Package Manager)
- Como configurar um projeto git para ignorar arquivos e diretórios
- Como instalar e inicializar um projeto de testes com Cypress
- O básico dos arquivos package.json e package-lock.json
- Como configurar a baseUrl com Cypress
- Como usar variáveis para guardar dados sensíveis e os reaproveitá-los
Obs.: Em versões mais recentes do Cypress (8.x.x+) pode ser necessário setar a propriedade chromeWebSecurity: false no arquivo cypress.json, visto que ao utilizar o cy.visit() o Cypress redireciona do endereço http://localhost para https://localhost.
Documentação:
Instalação do Cypress (porém, recomendo instalar com o comando: npm install cypress@9.7.0 --save-dev, para não correr o risco de instalar a versão 10, na qual houveram breaking changes).
Nesta aula você vai aprender:
- Como configurar o Intelisense com Cypress
- Como criar testes simples de GUI (para as funcionalidades de login, logout e criação de projeto)
- Como o Cypress isola os testes uns dos outros através de limpeza de sessão a cada teste executado
- Como estruturar os testes de forma organizada e padronizada
- Uma alternativa às fixtures
- Como organizar os testes de forma que possam ser executados em paralelo
- Como criar comandos customizados
- Como executar um único teste em modo interativo e em modo headless
Documentação:
Nesta aula você vai aprender:
- Como criar testes de GUI para a funcionalidade de criação de issue (funcionalidade a qual depende da criação de um projeto)
- Os problemas de fazer tudo via GUI
Nesta aula você vai aprender:
- Como criar testes de API para as funcionalidades de criação de projeto e criação de issue
- Como organizar comandos customizados de chamadas de API
- Como utilizar o Access Token criado na aula 1
- Como utilizar o comando cy.request
- Como lidar com dependências entre comandos customizados de chamadas de API
Documentação:
Nesta aula você vai aprender:
- Como otimizar testes de GUI utilizando chamadas de API para a criação de pré-condições de testes
- Como tal abordagem ajuda na velocidade e independência dos testes
Nesta aula você vai aprender:
- Como criar testes complexos de GUI para as funcionalidades de adição de um label à uma issue e adição de uma milestone à uma issue
- A importância do uso de chamadas de API para a criação de estado na aplicação em testes que exigem muitas pré-condições (criação de projeto, criação de issue e criação de label ou milestone)
- A importância de testar via GUI só uma vez
Documentação:
Nesta aula você vai aprender:
- Como criar e executar testes que interagem com a aplicação a nível de sistema operacional para a funcionalidade de git clone
- Como organizar comandos customizados de linha de comando
- Como realizar verificações no conteúdo de arquivos
- Outros exemplos do que pode ser feito com tal abordagem
Documentação:
Nesta aula você vai aprender:
- Como executar todos os testes em modo headless utilizando o script de testes do NPM
- Como executar todos os testes em modo interativo
- Como executar testes específicos em modo interativo
- Como desligar o container
Documentacão:
Nesta aula explico brevemente alguns próximos passos no aprendizado de Cypress e o que esperar para o curso avançado que será lançado no futuro pela Escola TAT.
Projetos citados durante a aula:
GitLab Cypress (hospedado no GitLab)
GitLab Cypress (hospedado no GitHub - este projeto está mais atualizado que o projeto acima hospedado no GitLab)