Ferramentas do Chrome para testes automatizados e sem atrito

Os testes são importantes. É uma etapa importante antes de entregar o que você criou para os usuários, seja um site ou aplicativo inteiro ou um novo recurso, para verificar se ele funciona conforme o esperado. No entanto, muitos testes ainda acontecem manualmente, com colegas ou engenheiros de teste que precisam conferir o novo recurso e informar problemas.

Embora esse teste manual possa mostrar algumas classes de problemas, ele pode perder muitos outros. As pessoas que fazem os testes podem perder casos extremos ou falhar completamente ao testar uma jornada específica no app. Elas também não têm todas as informações que você tinha ao escrever o código, não sabem sobre os problemas específicos que você incluiu o código para evitar. E, à medida que o tempo passa e novos recursos são adicionados, eles voltam e testam novamente todas as coisas que funcionavam anteriormente para garantir que as mudanças não as tenham quebrado?

É 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 se o recurso está quebrado, você pode ter certeza de que cada pequeno detalhe é testado, agora e após o 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, a equipe do Chrome oferece as ferramentas e orientações a seguir para facilitar ao máximo o processo.

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 fácil de usar.

Embora essa API tenha sido originalmente baseada no Chrome DevTools Protocol, o objetivo é tornar o novo e avançado protocolo BiDi do WebDriver a base do Puppeteer até o fim do ano. O WebDriver BiDi, cocriado por todos os principais fornecedores de navegadores, simplifica muitos casos de uso de automação e permite muitos novos, além de ser compatível com vários navegadores.

Mas não precisa esperar. A API do Puppeteer já permite muitos casos de uso de automação, que só vão melhorar com o WebDriver BiDi. Do teste ao rastreamento visual e à automação de processos, há muito o que você pode fazer com recursos como interações de página, interceptação de solicitações e capturas de tela. Você pode até mesmo usá-lo para testar seus modelos de IA da Web na nuvem usando o WebGPU e o WebGL.

O Puppeteer também é usado por ferramentas como o WebdriverIO, um framework de teste de navegador completo, e a Ferramenta de análise de dados do Sandbox de privacidade, que permite entender melhor o uso de cookies e dados do usuário no seu site.

Chrome Headless

Se você já automatizou o Chrome usando o Puppeteer, talvez tenha descoberto que não há 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á uma janela de navegador real enquanto a automação está em execução.

Mas você sabia que o modo headless do Chrome não era apenas o Chrome sem janela, mas uma versão mantida de forma completamente separada do Chrome? Por muito tempo, isso causou confusão e dificultou o rastreamento de bugs e problemas.

No Chrome 112, apresentamos um novo modo headless, agora baseado na mesma base de código do Chrome normal. Isso não apenas reduz a confusão anterior, mas também traz funcionalidades que não eram possíveis antes, como usar 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, será possível forçar o novo modo Headless com a chave de linha de comando --headless=new.

Embora o novo modo headless do Chrome seja mais poderoso, ele não é tão leve quanto o antigo. Se você tiver recursos limitados ou não precisar de todos os recursos do Chrome, use o modo headless antigo como chrome-headless-shell.

Chrome for Testing

Ao testar, você precisa de 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 para testes, uma versão do Chrome sem atualização automática, lançada com todas as versões do Chrome, para todos os principais sistemas operacionais, acessível em um arquivo com versões. Isso permite executar seus fluxos de trabalho de automação em uma versão específica do Chrome sem muito trabalho.

É possível acessar 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 para tornar a automação do navegador e a execução de testes o mais tranquilas possível para você. E ferramentas relacionadas, como o DevTools Recorder, ajudam na criação de testes: grave um fluxo de usuário no Chrome e reproduza no Puppeteer.

Aprenda sobre testes no web.dev

As ferramentas abordadas nesta postagem vão ajudar você a melhorar os testes automatizados. No entanto, se você está começando, pode parecer que há muito para entender e aprender. Por isso, criamos um novo curso de 10 módulos, Aprenda a testar no web.dev. Esse curso detalhado aborda os conceitos básicos de testes, onde e como eles são executados, tipos de testes e o que realmente testar. É um ótimo ponto de partida para sua jornada de testes. Depois de aprender o básico, acesse nossa coleção de automação de testes com análises profundas e dicas práticas sobre perguntas de teste mais específicas.