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

Mathias bynens
Mathias Bynens

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 acredita que isso é necessário e apresenta exemplos concretos em que o Chrome for Testing pode beneficiar os desenvolvedores.

Contexto

O teste do navegador é um componente vital para a criação de uma experiência de alta qualidade na Web, seja de forma manual ou automática. Ao mesmo tempo, configurar um ambiente de teste do navegador adequado é difícil, tanto que é consistente relacionado como um dos principais problemas para desenvolvedores da Web. Hoje, estamos anunciando uma mudança que esperamos que alivie alguns desses problemas.

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

Um dos principais recursos do Chrome é a capacidade de atualização automática. Os usuários gostam de saber que estão executando uma versão segura e atualizada 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, é possível que você tenha uma perspectiva totalmente diferente:

  • Você deseja 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 de versão no repositório do código-fonte para conferir confirmações e ramificações antigas e executar novamente os testes no binário do navegador a partir desse momento.

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

Binários de navegador com várias 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 desafio 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. Além de fazer o download de um binário do Chrome de alguma forma, você 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. Em segundo lugar, eles são criados e publicados separadamente do processo de lançamento do Chrome, tornando impossível mapear as versões de volta para versões reais do Chrome voltadas para o 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 versão dedicada 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 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 do Chrome for Testing oferece oportunidades interessantes além do próprio Chrome. Por exemplo, as dificuldades que mencionamos anteriormente em encontrar um binário correspondente do Chrome e do ChromeDriver podem ser totalmente eliminadas com a integração do processo de liberação do ChromeDriver à infraestrutura do Chrome for Testing. Além de resolver esse aspecto problemático, a solução também alinha as versões do ChromeDriver às versões do Chrome e elimina o processo de liberação manual.

Como posso instalar 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. Confira 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.