Playwright – o que é isso que tá todo mundo falando?
Playwright é uma ferramenta/framework de testes automatizados (tipo Selenium e Cypress) desenvolvida pela Microsoft (o que?!?!?!).
A primeira release foi em Jan 31, 2020 e apesar de ser relativamente nova, apresenta bastante dos recursos que as outras ferramentas de teste tem (se não todos e mais um pouco). O repositório tem 48.6k stars (neste momento que o post está sendo escrito) vs. 42.9k stars do cypress.io.
Bom, em alguns experimentos que eu fiz, a maior vantagem foi o tempo de execução dos testes.
É IMPRESSIONANTE o quão rápido ele roda. Comparado com Cypress, gastou metade do tempo em um teste simples de login com configurações default de paralelismo (neste outro artigo você encontra detalhes da comparação – dê uma olhada!).
Muitas vezes, “tempo” é um problema ignorado por times de qualidade e DevOps. Engenheiros tendem a se acostumar com o tempo de build de um projeto. Existem muitas prioridades na empresa, e geralmente, se o “teste tá rodando” é o que importa!
Portanto, convido vocês a desafiar este conceito e ao menos avaliar os ganhos que terão ao usar Playwright.
3 Outras Funcionalidades que se Destacam
- Parallelism and sharding (Paralelismo e Separação em diferentes máquinas): roda testes de um mesmo arquivo em paralelo. Se você tem 1 arquivo com 10 testes, ele irá rodar os 10 testes em paralelo; ao contrário de outras ferramentas que rodam apenas arquivos em paralelo. A configuração é muito simples de ser feita.
- Session storage (Armazenamento da Sessão): Para uma execução de teste AINDA MAIS RÁPIDA (sim, isso é possível!), se os seus testes fizerem login várias vezes, você pode reusar o contexto do browser logando uma vez só. Não é através de chamada de API; é uma configuração simples de ser feita, que permite que o teste reuse o contexto do browser, anteriormente salvo, pulando a etapa de login. É claro que você pode desabilitar essa funcionalidade para um ou demais testes com apenas uma simples linha de código.
- Reporters (Relatórios de Teste): Além de já vir com um relatório super completo e de você conseguir configurar com 2 ou 3 linhas extremamente simples de código, o relatório que o Playwright oferece vem com um trace viewer (rastreabilidade de passos) que mostra exatamente o que aconteceu em cada evento do seu teste e como o browser respondeu (depois que o teste executou). Isso acelera muito o tempo de investigação de bugs ou falhas de teste.
Conclusão
Claro que muitos fatores devem ser considerados ao decidir usar Playwright – inclusive recomendo o curso “Setting a foundation for successful test automation” da Angie Jones (Definindo uma base de sucesso para automação de testes).
- Se a sua suíte de automação já tem milhares de testes, talvez não seja a melhor escolha migrar tudo; mas eventualmente uma parte dos testes que estiverem flaky, ou que demandem muito tempo de manutenção possa ser uma alternativa.
- Se tiver um projeto novo começando, talvez seja interessante utilizar Playwright; ou se você vai iniciar um novo tipo de teste (API, acessibilidade, web performance, etc) que irá demandar muita refatoração de código também.
Me conta nos comentários, você acha que é possível utilizar Playwright nos projetos que você atua ou irá atuar?