Os testes são importantes. Essa é uma etapa importante antes de entregar o que você criou aos usuários, seja um site ou aplicativo inteiro ou um novo recurso, para verificar se tudo funciona conforme o esperado. No entanto, muitos testes ainda acontecem manualmente, com colegas ou engenheiros de teste solicitados a conferir o novo recurso e informar problemas.
Embora esse teste manual possa mostrar determinadas classes de problemas, pode deixar muitos outros. As pessoas que estão fazendo o teste podem perder casos extremos ou falhar completamente em testar uma jornada específica pelo app. Elas também não têm todas as informações que você tinha ao escrever o código e não sabem os problemas específicos que você incluiu no código para evitar. E, à medida que o tempo passa e novos recursos são adicionados, eles voltam e testam novamente todos os elementos que estavam funcionando anteriormente para garantir que não tenham sido corrompidos com as alterações?
É por isso que a equipe do Chrome acredita na importância dos testes automatizados. Ao usar um conjunto de testes que testa de forma confiável e repetida o recurso em busca de falhas, é possível garantir que todos os pequenos detalhes sejam testados agora e depois do desenvolvimento futuro. Seu conhecimento como desenvolvedor de um recurso é encapsulado em um teste.
No entanto, sabemos que os testes automatizados podem ser desafiadores. É por isso que a equipe do Chrome fornece as seguintes ferramentas e orientações para tornar o processo o mais simples possível para você.
Animador de fantoches
O Puppeteer é uma biblioteca do Node.js. Ele permite automatizar o Chrome, o Chromium e o Firefox com uma API de alto nível e fácil de usar.
Embora essa API tenha sido originalmente baseada no protocolo do Chrome DevTools, o objetivo é tornar o novo e avançado protocolo WebDriver BiDi a base do Puppeteer até o final do ano. O WebDriver BiDi, cocriado por todos os principais fornecedores de navegadores, simplifica muitos casos de uso de automação, ativa muitos novos e é compatível com navegadores.
Mas não é preciso esperar. A API do Puppeteer já permite muitos casos de uso de automação atualmente, o que só melhorará com o WebDriver BiDi. Desde testes até rastreamento visual e automação de processos, há muito o que você pode fazer com recursos como interações de páginas, interceptação de solicitações e capturas de tela. Ele pode até ser usado para testar seus modelos de IA da Web na nuvem usando WebGPU e WebGL.
O Puppeteer também é usado por ferramentas como o WebdriverIO, um framework completo de testes de navegador e a Ferramenta de análise do Sandbox de privacidade (links em inglês), o que permite entender melhor o uso de cookies e dados do usuário no seu site.
Sem comando no Chrome
Se você já automatizou o Chrome usando o Puppeteer, deve ter descoberto que nenhuma janela de navegador é exibida durante a execução dos testes. Por padrão, o Puppeteer inicia o Chrome no modo Headless. Isso significa que não há janela real do navegador enquanto a automação está em execução.
Mas você sabia que o modo headless do Chrome não era apenas Chrome sem uma janela, mas, na verdade, uma versão do Chrome completamente mantida? Por muito tempo, isso causou confusão e dificultava o rastreamento de bugs e problemas.
No Chrome 112, apresentamos um novo modo headless, agora com base na mesma base de código do Chrome normal. Isso não apenas reduz as confusões anteriores, mas também traz funcionalidades que não eram possíveis antes, como o uso de extensões durante a automação.
O Puppeteer usa esse novo modo Headless como padrão desde a versão 22. Se
você estiver usando o Chrome Headless com outras soluções de automação, poderá forçar
o novo modo headless com a chave de linha de comando --headless=new
.
Embora o novo modo headless do Chrome seja mais eficiente, ele não é tão leve quanto
o antigo modo headless. Se você tem uma limitação de recursos ou não precisa de todos
os recursos do Chrome, use o antigo modo headless como chrome-headless-shell
.
Chrome for Testing
Ao testar, é necessário ter um controle refinado sobre o ambiente de teste: o sistema operacional, o navegador e a versão do navegador. Com a atualização automática do Chrome, isso pode ser difícil.
Por isso, criamos o Chrome for Testing: uma versão do Chrome sem atualização automática, lançada junto com todas as versões do Chrome, para todos os principais sistemas operacionais, acessível a partir de um arquivo com controle de versão. Isso permite que você execute seus fluxos de trabalho de automação em uma versão específica do Chrome sem precisar mexer muito.
Acesse os binários do Chrome for Testing no painel de disponibilidade do Chrome for Testing, na API JSON ou com o utilitário de linha de comando Puppeteer.
O Puppeteer, o modo headless atualizado do Chrome e o Chrome for Testing são apenas parte do trabalho que nossa equipe está fazendo no momento para facilitar ao máximo a automação do navegador e a execução de testes. E ferramentas relacionadas, como o DevTools Recorder, ajudam na criação de testes: registre um fluxo de usuário no Chrome e o reproduza no Puppeteer.
Aprenda sobre testes no web.dev
As ferramentas abordadas nesta postagem ajudarão você a melhorar seus testes automatizados. Mas, se você está apenas começando, pode parecer muito para entender e aprender. Por isso, criamos um novo curso de 10 módulos: Aprenda testes no web.dev. Esse curso detalhado aborda os principais conceitos de testes, onde e como eles são executados, tipos de teste e o que realmente testar. É um ótimo ponto de partida para sua jornada de teste. Depois de aprender o básico, fique à vontade para acessar nossa coleção de testes de automação com análises aprofundadas e dicas práticas sobre questões de teste mais específicas.