Os testes automatizados do navegador são essenciais para criar aplicativos da Web robustos e de alta qualidade. Se você estiver executando suítes de testes de integração contínua (CI) de ponta a ponta, realizando testes de regressão em versões do navegador ou automatizando interações do navegador, o Chrome oferece um conjunto dedicado de ferramentas e modos de execução projetados para desenvolvedores e engenheiros de automação de testes.
Esta visão geral apresenta os principais produtos no ecossistema de automação e testes do Chrome: Chrome for Testing, ChromeDriver, Puppeteer e modo headless do Chrome. Ela também explica como você pode usá-los juntos para fluxos de trabalho de teste confiáveis e reproduzíveis.
Chrome for Testing
O Chrome for Testing é uma variação do Chrome dedicada a casos de uso de teste e automação de apps da Web.
Ao executar suítes de testes de ponta a ponta ou pipelines de integração contínua (CI), geralmente é necessário ter resultados consistentes e reproduzíveis em execuções de testes repetidas. Em vez de depender de instalações padrão do navegador, o Chrome for Testing permite baixar e fixar versões específicas do Chrome para seus ambientes de teste.
Principais recursos
- Downloads versionados sob demanda:acesse binários específicos e versionados do Chrome para sempre testar a versão exata escolhida.
- Binários pareados em todos os canais:para cada versão do Chrome em todos os canais (Stable, Beta, Dev e Canary), o Chrome for Testing oferece binários correspondentes do Chrome pareados com os binários relevantes do ChromeDriver, bem como o shell headless antigo do Chrome (
chrome-headless-shell) para quem ainda o usa em testes automatizados. - Automação de download fácil:os binários podem ser baixados facilmente usando o utilitário de linha de comando
@puppeteer/browsersou consultados pelo painel de disponibilidade.
Saiba mais
ChromeDriver
ChromeDriver é um servidor independente de código aberto que implementa o padrão W3C WebDriver e o protocolo bidirecional WebDriver BiDi. Ele atua como a ponte entre frameworks de teste baseados no WebDriver (como Selenium, WebDriverIO e Nightwatch) e o navegador Chrome.
Principais recursos
- Suporte ao W3C WebDriver e ao WebDriver BiDi:oferece suporte a comandos de automação do WebDriver clássico e comunicação bidirecional em tempo real via WebDriver BiDi para escuta rápida de eventos, monitoramento de rede e interceptação de registros.
- Cojuntamente lançado com o Chrome for Testing:as versões do ChromeDriver são integradas diretamente à infraestrutura do Chrome for Testing. Para cada versão do Chrome for Testing, uma versão correspondente do ChromeDriver é lançada simultaneamente, eliminando problemas de incompatibilidade de versões.
Saiba mais
- Documentação do ChromeDriver
- WebDriver BiDi: o futuro da automação entre navegadores
- MDN: referência do WebDriver BiDi
Animador de fantoches
O Puppeteer é uma biblioteca JavaScript desenvolvida pelo Google que fornece uma API de alto nível para controlar o Chrome pelo Chrome DevTools Protocol (CDP) ou pelo WebDriver BiDi.
Principais recursos
- Automação sem configuração:o Puppeteer baixa automaticamente um binário compatível do Chrome for Testing por padrão, permitindo a automação do navegador pronta para uso.
- Controle total sobre o Chrome:capture capturas de tela, gere PDFs, automatize o envio de formulários, intercepte solicitações de rede e execute testes de interface no modo com interface ou headless.
Saiba mais
Modo headless do Chrome
O modo headless do Chrome permite executar o navegador em um ambiente autônomo sem nenhuma interface de usuário visível. Ao transmitir a flag --headless na linha de comando, o Chrome é executado de maneira limpa em ambientes de servidor, contêineres e pipelines de CI/CD.
Principais recursos
- Mecanismo de navegador unificado:o modo headless moderno (
--headless) compartilha a mesma implementação de navegador que o Chrome com interface. - Recursos avançados de automação e depuração:oferece suporte à captura de capturas de tela, geração de PDF, depuração remota e configuração de tela virtual.
Saiba mais
- Executar o Chrome no modo headless
- Configurar telas virtuais
- Depurar no modo headless
- Referência de linha de comando headless
Exemplo: como usar esses produtos juntos
Em um fluxo de trabalho típico de testes automatizados ou integração contínua (CI), esses produtos funcionam juntos para fornecer um ambiente de teste reproduzível e autônomo:
- Binário do navegador (Chrome for Testing) : use um binário específico e fixado por versão do Chrome for Testing para que os resultados do teste sejam determinísticos em todas as execuções.
- Modo de execução (modo headless do Chrome) : execute esse binário no modo headless (
--headless) para que os testes sejam executados de maneira limpa em servidores, contêineres ou pipelines de CI sem uma exibição gráfica. - Driver de automação (Puppeteer ou ChromeDriver) : conduza o navegador usando uma biblioteca de automação como o Puppeteer ou qualquer outro framework de teste conectado pelo WebDriver BiDi.
O Puppeteer conecta essas partes automaticamente. Quando instalado, ele baixa um binário compatível do Chrome for Testing e o inicia no modo headless por padrão.
Ao usar frameworks do W3C WebDriver (como Selenium ou WebdriverIO), você pode baixar automaticamente um par correspondente de binários do Chrome for Testing e do ChromeDriver e transmitir a flag --headless para executar sem interface.