Qual framework devo escolher para criar meus testes E2E? Cypress ou Playwright?

Com a constante evolução da tecnologia, o profissional de TI precisa se atualizar com as ferramentas ao seu dispor, com o intuito de melhorar a qualidade do seu código, do produto e da experiência do usuário. O Quality Analyst “de respeito” preza pela melhoria contínua do software que está sendo criado, e quando falamos em qualidade, a primeira palavra que vem em nossa cabeça é TESTES.

Para nivelarmos os testes em camadas para fácil entendimento, podemos utilizar a pirâmide de testes. Essa pirâmide é separada em 3 níveis, sendo esses: Testes Unitários, Testes de Integração e Testes E2E. É uma forma gráfica de demonstrar a quantidade de testes a serem realizados, baseado na velocidade de sua implementação com o custo e tempo de execução desses testes.

Os Testes Unitários ficam na base da nossa pirâmide. Queremos criar uma maior quantidade de Testes Unitários comparado a outros tipos de testes, pois sua implementação é fácil e rápida, ocasionando uma redução do custo do teste. Os Testes de integração ficam na parte intermediária da nossa pirâmide, pois possuem um grau maior de dificuldade na sua criação. Por último, mas não menos importante, os Testes E2E ficam ao topo, sendo oposto dos Testes Unitário – caros, complexos e mais demorados – e queremos fazer em menor quantidade. Porém, independente de custo ou velocidade, todos os testes possuem seu valor na implementação de um software, garantindo segurança e qualidade ao seu sistema.

Os Testes E2E – “End to End” ou para os mais íntimos “Ponta a Ponta” – visam provar o sistema de forma mais completa, simulando o ambiente real com intuito de replicar cenários reais feitos pelo usuário. A partir desse princípio e prezando pela melhoria contínua, trago a vocês duas ferramentas que possibilitam a automatização desse tipo de teste.

Cypress

O Cypress é um framework open source lançado em 2017 como uma nova forma de automatizar os testes. Permitindo a simulação do comportamento do usuário, o Cypress possibilita a criação de testes E2E e testes de componentes durante o desenvolvimento do software.

Com sua excelente documentação, o Cypress possui facilidades no aprendizado pois é produzido conteúdos educativos em diversas plataformas de ensino. Consegue suportar estilos de escritas de testes como o BDD e o TDD, possibilitando ao QA a construir o teste e observar os testes em uma aba exclusiva. O Cypress também oferece recursos de depuração para contribuição na produtividade do desenvolvedor nos quesitos de escrita de teste e qualidade.

Os testes rodam em tempo real dentro de um navegador – como um app – durante a implementação do teste, facilitando na usabilidade e na confecção de relatórios de testes. Caso um teste falhe durante a sua execução, o Cypress possibilita a captura de imagens e vídeos, notificando-nos o local e o momento exato em que o erro aconteceu.

Mas como todas essas possibilidades, o Cypress também possui seus defeitos. A framework demora muito para carregar as informações iniciais – e necessárias – para rodar os testes, podendo perder em produtividade em cenários curtos ou softwares menores. Possui uma única compatibilidade com linguagens de programação, sendo esse o suporte exclusivo para JavaScript e, como um dos maiores problemas do Cypress, é sua falta de suporte para múltiplas abas e suporte oficial de download e upload de arquivos.

Playwright

Criado pela equipe desenvolvedora do “Puppetter”, o Playwright é um framework open source lançado pela Microsoft em 2019 explicitamente para testes de ponta a ponta.

Utilizando de uma única API, o Playwright possui suporte para diversas linguagens de programação como JavaScript, Java, Python e C#, o Playwright cria cenários abrangendo múltiplas abas nos principais navegadores do mercado (Chromium, Firefox e Webkit) e suporte a outras estruturas de testes como Jasmine, Mocha e Jest.

Com fácil instalação e configuração, o Playwright possui a capacidade de fazer download e upload de arquivos na implementação dos seus testes, como também a simulação de dispositivos móveis, geolocalização e perfis de acesso dentro da sua aplicação, construindo um ambiente completo para simular a experiência real do usuário.

Porém nem tudo são flores, pois o Playwright ainda é um recém-chegado no mercado, e seu suporte e apoio da comunidade ainda são limitados, como também sua base de usuários. O grande problema da framework é não possuir suporte para IE11 e aplicações nativas de mobile.

Leonardo… e a sua conclusão?

MASSSS, e agora? Depois de resumir as vantagens e desvantagens de cada framework, qual devemos utilizar? E a resposta sempre será… Depende.

As duas ferramentas possuem um objetivo final semelhante, porém abordam o processo de testes de maneira diferente, dependendo das necessidades específicas da sua aplicação.

O Cypress é mais fácil de aprender devido ao tempo de lançamento e devido a quantidade de apoiadores no cenário atual do mercado. O seu suporte de aceitar BDD e TDD nas escritas de testes facilita na implementação de testes, e facilita o QA na elaboração de relatórios de testes. Por fim, o Cypress possui uma elevada eficiência na estrutura em que é construída pela framework.

Já o Playwright propõe uma flexibilidade muito maior no seu projeto, já que possui suporte para diversas linguagens, diversos navegadores e quando os cenários de testes possuem a necessidade de utilizar múltiplas abas, downloads e uploads de arquivos. Porém o suporte da comunidade ainda é limitado e a falta de suporte para IE11 e aplicações nativas de mobile pode interferir na sua escolha.

Quando tratamos a comparação de testes entre Cypress ou Playwright, o determinante para o seu projeto será o nível de flexibilidade (Playwright) versus a estrutura do seu projeto (Cypress) para executar e controlar os seus testes.


Posted

in

,
Leonardo Silva Avatar

by

Comments

Leave a Reply

Discover more from ZBRA - Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading