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

Hoje, estamos felizes em anunciar o Chrome for Testing, uma nova versão do Chrome voltada especificamente para testes de apps da Web e casos de uso de automação. Este artigo explica por que a equipe do Chrome achou que isso era necessário e apresenta exemplos concretos em que o Chrome for Testing pode beneficiar você como desenvolvedor.

Contexto

O teste do navegador é um componente essencial na criação de uma experiência na Web de alta qualidade, seja de forma manual ou automática. Ao mesmo tempo, configurar um ambiente de teste de navegador adequado é difícil, tanto que é consistente relatado como um dos principais pontos problemáticos para desenvolvedores da Web. Hoje, anunciamos uma mudança que esperamos facilitar um pouco desse problema.

Atualização automática: ótimo para os usuários, problemático para os desenvolvedores

Um dos recursos mais notáveis do Chrome é a capacidade de atualização automática. Os usuários têm a satisfação de saber que estão executando uma versão atualizada e segura do navegador, incluindo recursos modernos da plataforma Web, recursos do navegador e correções de bugs a todo momento.

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 esse número no repositório de código-fonte para conferir commits e ramificações antigas e executar os testes novamente no binário do navegador a partir daquele momento.

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

Binários do navegador com controle de versões

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

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

Como não há uma boa maneira de resolver esses problemas, sabemos que muitos desenvolvedores fazem o download de binários do Chromium (não do Chrome), embora essa abordagem tenha algumas falhas. Primeiro, 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 torna impossível mapear suas versões de volta para versões reais do Chrome voltadas para o usuário. Terceiro, o Chromium é diferente do Chrome.

A solução: Chrome for Testing

Desenvolvido para resolver esses problemas, o Chrome for Testing é uma versão específica do Chrome voltada para o caso de uso de teste, sem atualização automática, integrada ao processo de lançamento do Chrome e disponibilizada a cada versão do Chrome. Um binário com controle de versão o mais próximo possível do Chrome normal, sem afetar negativamente o caso de uso do teste.

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

A infraestrutura em torno do Chrome for Testing gera 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 totalmente eliminadas com a integração do processo de lançamento do ChromeDriver na infraestrutura do Chrome for Testing. Além de resolver essa dificuldade voltada 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 acessar binários do Chrome for Testing?

A maneira mais fácil de fazer o download de binários do Chrome for Testing para sua plataforma é usar nosso utilitário de linha de comando @puppeteer/browsers, disponível via npm. Estes são 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 preferir criar seus próprios scripts automatizados para fazer o download desses binários, estamos aqui para 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.