Aprenda como escrever testes legíveis, estáveis e de fácil manutenção com o framework Protractor
Gostei muito do curso, com uma metodologia clara e de fácil entendimento para quem tem conhecimentos básicos ou avançados de testes automatizados, é um curso que auxilia no crescimento profissional e acredito que a proposta de arquitetura pode ser utilizada por qualquer um que venha a fazer o curso. Parabéns pelo excelente conteúdo!
Nesta aula iremos abordar questões relacionadas a simplicidade, organização, legibilidade, reutilização, manutenção e evolução de software, para o desenvolvimento de uma arquitetura de testes automatizados sustentável.
Recomendação de leitura;
Arquitetura Limpa: o Guia do Artesão Para Estrutura e Design de Software, de Robert C. Martin
Nesta aula iremos:
- Clonar um projeto git a partir do GitHub
- Inicializar um projeto Node.js
- Criar e editar o arquivo .gitignore
- Instalar o Protractor e outras dependências de desenvolvimento
- Estruturar os diretórios do projeto de testes end-to-end
- Navegar pela documentação oficial do Protractor (http://protractortest.org)
URL do projeto no GitHub: https://github.com/wlsf82/curso-protractor-tat.
Nesta aula iremos criar o arquivo que gera a configuração padrão para a execução de testes automatizados com o framework Protractor, além de criar arquivos com configurações específicas para a execução dos testes em diferentes navegadores.
URL da aplicação que será testada: https://lit-chamber-61567.herokuapp.com
Nesta aula iremos criar scripts para a execução de análise estática de código (utilizando a biblioteca standardjs) e testes automatizados.
Nesta aula iremos criar o primeiro teste, passando pelo primeiro Page Object e o primeiro componente. Além disso, também será abordada a tipagem dos métodos do protractor-helper.
Documentação oficial do protractor-helper
Conteúdo relacionado: lançamento do protractor-helper versão 4.1.1
Nesta aula iremos criar um novo teste com seu respectivo Page Object e componente, além de criarmos uma função utilitária por questões de reutilização de código.
Nesta aula iremos criar um novo teste com seu respectivo Page Object e componente, e iremos reaproveitar a função utilitária criada na aula anterior.
Nesta aula iremos criar um novo teste, no qual seu Page Object é composto por múltiplos componentes.
Nesta aula iremos evoluir a suite de testes criada na aula anterior para testar validações de um formulário.
Um novo conceito abordado nesta aula será a definição de um método para interação em um componente.
Nesta aula iremos evoluir ainda mais a suite de testes da aula passada para testar a submissão de um formulário com sucesso, onde além de testar que os dados foram persistidos corretamente, testaremos o redirecionamento para a página correta.
Durante a aula o aluno será apresentado à biblioteca faker, utilizada para a geração de dados aleatórios para fins de testes.
Por fim, nesta aula iremos reutilizar o método de submissão do formulário, do componente form,criado na aula anterior.
Nesta aula iremos testar o header de uma página aleatória da aplicação para fins de otimizar o tempo de execução dos testes.
Além disso, também iremos criar uma nova função utilitária.
Nesta aula iremos explorar a funcionalidade do editor de código Visual Studio Code para a execução dos scripts definidos no arquivo package.json.
Nesta aula iremos simular falhas em testes automatizados para analisar as mensagens de error fornecidas pela biblioteca protractor-helper.
Link relacionado: https://github.com/wlsf82/protractor-helper#example-of-a-test-failure-when-using-such-methods-as-expectations.
Nesta aula iremos colocar os scripts de análise estática de código e testes automatizados para rodar na integração contínua do GitHub (GitHub Actions).
Links da imagens mencionadas na aula:
- Imagem do Ubuntu 16.04.6 LTS no repositório do GitHub Actions
- Imagem do Ubuntu 18.04.4 LTS no repositório do GitHub Actions
Nesta aula faremos alguns ajustes finais no arquivo package.json, além de criar uma documentação para o projeto de testes end-to-end, cobrindo questões como pré-requisitos, instalação das dependências, e execução dos testes propriamente ditos.
Nesta aula iremos revisar o projeto analisando sua estrutura de diretórios e arquivos e suas relações com uma arquitetura limpa. Além disso, iremos analisar algumas evoluções que podem ser feitas em um projeto com tal arquitetura.
Branch do projeto no GitHub com a solução final implementada durante o curso.
Branch do projeto no GitHub com uma evolução da solução final (nesta evolução, não demonstrada durante o curso, foi implementado um Page Object base, o qual implementa o método visit, além da instância do componente header. Os outros Page Objects são então estendidos a partir do Page Object base para a remoção de duplicação de código). Para mais detalhes, leia os seguintes commits (19792d2, 36ae57e, e 6a30a77).
Testes automatizados de GUI (Graphical User Interface) devem ser escritos com o mesmo cuidado que código de funcionalidades, portanto, devem ser legíveis, para que se entenda quais comportamentos cada testes está validando, estáveis, para que o time confie em seus resultados, e de fácil manutenção, para que possam evoluir ao longo da vida do software o qual eles suportam.
Neste curso você irá aprender como arquitetar um projeto de testes end-to-end automatizados com Protractor, onde legibilidade, estabilidade e manutenabilidade serão o principal foco.
Ao término deste curso você estará apto a implementar testes automatizados em projetos de software de forma eficiente e efetiva, seja em um projeto novo, ou mesmo na refatoração de projetos legado.
Pré-requisitos:
- Node.js (12.16.3) e NPM (6.14.5) instalados no computador
- Chrome (81.0.4044.138) e Firefox (76.0.1) instalados no computador
- git (2.26.2) instalado no computador
Recomendações:
- Conhecimentos básicos de HTML e seletores CSS
- Conhecimentos básicos de JavaScript
- Conhecimentos básicos de linha de comando
- Conhecimentos básicos de git
- Conhecimentos básicos de NPM
Obs.: 10% do valor pago pelo curso será doado à organização Patas Dadas, a qual tem a missão de resgatar animais em situação de abandono, proporcionando o atendimento veterinário necessário até estarem prontos para a adoção, buscando conscientizar a população da importância da adoção responsável.
Livro de Protractor:
Confira meu livro de Protractor publicado pela Editora Casa do Código.
Ou se preferir, confira a versão em Inglês, publicado de forma independente no Leanpub.
Engenheiro de software, embaixador do Cypress.io, skatista, blogger, escritor, YouTuber e...
Profissional de engenharia de software com foco em garantia da qualidade desde 2004, clean coder, autor do blog talkingabouttesting.com, autor do canal TalkingAboutTesting no YouTube, Embaixador do Cypress.io, autor do livro Protractor - Lições sobre testes end-to-end automatizados, publicado pela editora Casa do Código, mentor, mantenedor da biblioteca protractor-helper, ativo membro de comunidades de desenvolvimento de software, voluntário, coordenador e palestrante em eventos de tecnologia no Brasil e na Europa, e uma pessoa com sede de compartilhar conhecimento.
Website: walmyr.dev
GitHub: wlsf82
"Quero agradecer e elogiar todo o conteúdo do curso de "Arquitetura de Testes com Protractor" ministrado pelo Walmyr. Procurei por algum tempo um curso como este aparecer. Todos os cursos encontrados não tinham o custo e benefício disponibilizado pela "Talking About Testing". O Walmyr me enriqueceu com seus conteúdos e suas experiências, tudo muito seguro e convicto. Fiquei sem dúvidas e meus objetivos foram alcançados."
Rafael Torres dos Santos
QA
"Um dos grandes diferenciais deste curso é a apresentação de um proposta de estrutura de testes que pode ser usada instantaneamente em seus projetos pessoais ou profissionais. O conteúdo do curso aborda detalhadamente cada arquivo e configuração necessária para a construção e execução do projeto. A disponibilização do código no GitHub e os materiais extras para leitura disponibilizados em cada lição complementam de forma exponencial a grade do curso."
Marlon Cristo
Analista de testes
"O curso de arquitetura de testes com Protractor foi de grande ajuda para o meu aperfeiçoamento em testes automatizados. Com a arquitetura proposta no curso eu pude simplificar os testes e consequentemente otimizar meu tempo de trabalho. A didática empregada também ficou muito clara e de fácil entendimento."
Ted Igor Soares Medeiros
Testador de software
"O curso de arquitetura de testes com Protractor foi de grande ajuda para o meu entendimento, tanto com relação a como estruturar um projeto de testes, quanto para entender melhor como o Protractor funciona por si só. Com a arquitetura evidenciada no curso, imediatamente pude implementar e simplificar os testes em meu ambiente de trabalho e consequentemente otimizar a performance dos meus scripts. Recomendo à todos que desejam trabalhar com Protractor ou aos que atualmente já tem contato com a ferramenta!"
Pedro Henrique
Analista de Testes
"Recomendo o curso de arquitetura de testes com Protractor, ministrado pelo Walmyr Filho. O curso é objetivo e direto ao ponto. Gostei muito da forma como ele organizou as aulas, construindo um passo-a-passo com dicas que certamente vão ajudar não só aquele que está iniciando, como também quem já tem alguma experiência, onde ao final do curso, estará apto a construir testes com um código limpo, organizado, com a utilização de Page Objects, faker e intregração contínua no GitHub. Parabéns pelo seu trabalho Walmyr!"
Márcio Rodrigues Sanches
Analista de teste/QA