Chrome for Testing: downloads confiáveis para automação do navegador

Hoje, temos a satisfação de anunciar o Chrome for Testing, uma nova variação do Chrome voltada especificamente para casos de uso de teste e automação de aplicativos da Web. Este artigo explica por que a equipe do Chrome sentiu que isso era necessário e apresenta exemplos concretos de onde o Chrome for Testing pode beneficiar você como desenvolvedor.

Contexto

O teste do navegador é um componente vital para criar uma experiência de alta qualidade na Web, seja de forma manual ou automática. Ao mesmo tempo, configurar um ambiente adequado de teste do navegador é notoriamente difícil, tanto que é consistente informado como um dos principais problemas de um desenvolvedor Web. Hoje, estamos anunciando uma mudança que, esperamos, aliviar um pouco essa dor.

Atualização automática: ótima para os usuários, difícil para os desenvolvedores

Um dos recursos mais importantes do Chrome é sua capacidade de atualização automática. Os usuários ficam felizes em saber que estão sempre executando uma versão atualizada e segura do navegador, incluindo recursos modernos da Web Platform, recursos do navegador e correções de bugs.

No entanto, como desenvolvedor que executa um conjunto de testes completos, você pode ter uma perspectiva totalmente diferente:

  • Você quer resultados consistentes e reproduzíveis em execuções de teste repetidas, mas isso pode não acontecer se o executável ou binário do navegador decidir se atualizar entre duas execuções.
  • Você quer fixar uma versão específica do navegador e verificar o número dela no repositório do código-fonte, para conferir commits e ramificações antigos e executar novamente os testes no binário do navegador desse momento.

Nada disso é possível com um binário de navegador de atualização automática. Por isso, é recomendável não usar a instalação normal do Chrome para testes automatizados. Essa é a diferença fundamental entre o que é bom para usuários regulares de navegadores e o que é bom para desenvolvedores que fazem testes automatizados.

Binários do navegador com controle de versão

Além da atualização automática, também pode ter sido difícil encontrar um binário do Chrome com uma versão específica. O Google não disponibiliza intencionalmente os downloads com controle de versão do Chrome, já que os usuários não precisam se preocupar com os números de versão. Eles sempre devem ser atualizados para a versão mais recente o mais rápido possível. Isso é ótimo para os usuários, mas é difícil para os desenvolvedores que precisam reproduzir um relatório do bug em uma versão mais antiga do Chrome.

Um exemplo mais específico desse problema é quando você quer usar o ChromeDriver para automação do navegador. Você não só precisa fazer o download de um binário do Chrome de alguma forma, mas também precisa de um binário do ChromeDriver com versão correspondente para garantir que os dois binários sejam compatíveis.

Como não existe uma boa maneira de resolver esses problemas, muitos desenvolvedores fazem o download de binários do Chromium (não do Chrome), embora essa abordagem tenha algumas falhas. Em primeiro lugar, esses binários do Chromium não estão disponíveis de forma confiável em todas as plataformas. Segundo, eles são criados e publicados separadamente do processo de lançamento do Chrome, o que impossibilita mapear suas versões de volta para versões reais do Chrome voltadas ao usuário. Em terceiro lugar, o Chromium é diferente do Chrome.

A solução: Chrome for Testing

Projetado para resolver esses problemas, o Chrome for Testing é uma variação exclusiva do Chrome voltada para o caso de uso de teste, sem atualização automática, integrado ao processo de lançamento do Chrome e disponibilizado para cada versão do Chrome. Um binário com controle de versão que é o mais próximo possível do Chrome normal, sem afetar negativamente o caso de uso de teste.

Para criar o Chrome for Testing, fizemos mudanças nas bases de código do Chromium e do Chrome e configuramos a infraestrutura para criar e fazer upload desses binários para um bucket disponível publicamente, acompanhando o processo de lançamento do Chrome em todos os canais (Stable, Beta, Dev e Canary).

A infraestrutura do Chrome for Testing abre oportunidades interessantes além do próprio Chrome. Por exemplo, as dificuldades que mencionamos anteriormente para encontrar um binário correspondente do Chrome e do ChromeDriver podem ser completamente eliminadas ao integrar o processo de lançamento do ChromeDriver à infraestrutura do Chrome for Testing. Além de resolver esse problema voltado ao usuário, isso também alinha as versões do ChromeDriver com as do Chrome e elimina o processo de lançamento manual do ChromeDriver.

Como posso instalar os binários do Chrome for Testing?

A maneira mais fácil de fazer o download dos binários do Chrome for Testing para sua plataforma é usar nosso utilitário de linha de comando @puppeteer/browsers, disponível em npm. Veja alguns exemplos:

# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable

# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0

# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary

# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0

Se você preferir criar seus próprios scripts automatizados para fazer o download desses binários, podemos ajudar. Oferecemos endpoints da API JSON com as versões mais recentes disponíveis por canal de lançamento do Chrome (Stable, Beta, Dev, Canary). Para ter uma visão geral rápida do status mais recente, consulte o painel de disponibilidade do Chrome for Testing.