Hoje, temos o prazer de anunciar o Chrome for Testing, uma nova variaçã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 isso necessário e mostra exemplos concretos de como o Chrome para testes pode beneficiar você como desenvolvedor.
Contexto
O teste de navegador é um componente essencial para criar uma experiência da Web de alta qualidade, seja manual ou automaticamente. Ao mesmo tempo, configurar um ambiente de teste de navegador adequado é notoriamente difícil, tanto que é consistentemente relatado como um dos principais problemas dos desenvolvedores da Web. Hoje, anunciamos uma mudança que esperamos que alivie um pouco essa dificuldade.
Atualização automática: ótima para usuários, difícil para desenvolvedores
Um dos recursos mais notáveis do Chrome é a capacidade de atualização automática. Os usuários ficam felizes em saber que estão usando uma versão atualizada e segura do navegador, incluindo recursos modernos da plataforma Web, recursos do navegador e correções de bugs a qualquer momento.
No entanto, como um desenvolvedor que executa um conjunto de testes completos, você pode ter uma perspectiva totalmente diferente:
- Você quer resultados consistentes e reproduzíveis em várias execuções de teste, 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 seu repositório de código-fonte para poder conferir commits e ramificações antigos e executar novamente os testes no binário do navegador a partir desse momento.
Nada disso é possível com um binário de navegador com atualização automática. Por isso, talvez você não queira usar sua instalação normal do Chrome para testes automatizados. Essa é a incompatibilidade fundamental entre o que é bom para usuários regulares de navegadores e o que é bom para desenvolvedores que fazem testes automatizados.
Binários de navegador com controle de versão
Além da atualização automática, talvez você tenha tido dificuldade para encontrar um binário do Chrome com uma versão específica. O Google não disponibiliza downloads do Chrome com versões específicas porque os usuários não precisam se preocupar com números de versão. Eles devem sempre receber a atualização para a versão mais recente assim que possível. Isso é ótimo para os usuários, mas problemático 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 precisar baixar um binário do Chrome, você também precisa de um binário do ChromeDriver com a versão correspondente para garantir a compatibilidade entre os dois.
Como não há uma boa maneira de resolver esses problemas, sabemos que muitos desenvolvedores baixam binários do Chromium (não do Chrome). No entanto, essa abordagem tem algumas falhas. Primeiro, esses binários do Chromium não estão disponíveis de maneira confiável em todas as plataformas. Em segundo lugar, eles são criados e publicados separadamente do processo de lançamento do Chrome, o que torna impossível mapear as versões de volta para lançamentos do Chrome voltados ao usuário real. Terceiro, o Chromium é diferente do Chrome.
A solução: Chrome for Testing
Criado para resolver esses problemas, o Chrome for Testing é uma variaçã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 disponível para cada lançamento 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 de teste.
Para criar o Chrome for Testing, fizemos mudanças nos codebases do Chromium e do Chrome e configuramos a infraestrutura para criar e fazer upload desses binários para um bucket disponível publicamente em sincronia com 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 mencionadas anteriormente para encontrar um binário correspondente do Chrome e do ChromeDriver podem ser completamente eliminadas integrando o processo de lançamento do ChromeDriver à infraestrutura do Chrome for Testing. Além de resolver esse problema para o usuário, isso também alinha os lançamentos do ChromeDriver com os do Chrome e elimina o processo manual de lançamento do ChromeDriver.
Como posso acessar 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 é usando 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, temos o que você precisa. 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.