Iniciar testes com sistemas de integração contínua (CI)

Você pode usar o Firebase Test Lab ao desenvolver seu app utilizando qualquer sistema de integração contínua (CI). Com os sistemas de integração contínua, você desenvolve e testa automaticamente o app sempre que são inseridas atualizações no código-fonte do app.

Como usar o Firebase Test Lab com a CI do Jenkins

Veja nesta seção como usar o Test Lab com a CI do Jenkins.

Requisitos

Antes de usar o Firebase Test Lab com o Jenkins, siga estas etapas:

  1. Configure o gcloud. Siga as instruções em Como usar o Firebase Test Lab da linha de comando gcloud para criar um projeto do Firebase e configurar seu ambiente local do SDK do Google Cloud.

  2. Crie e autorize uma conta de serviço. As contas de serviço não estão sujeitas a verificações de spam ou solicitações de captcha, o que poderia bloquear seus builds de CI. Crie uma conta de serviço com o papel de Editor no Console do Google Cloud e ative-a. Consulte a documentação da conta de serviço de ativação de autenticação do gcloud para mais informações.

  3. Ative as APIs obrigatórias. Depois de fazer login com a conta de serviço, na página da biblioteca de APIs do Google Developers Console, ative a API Google Cloud Testing e a API Cloud Tool Results. Para isso, digite o nome das APIs na caixa de pesquisa na parte superior do console e clique em Ativar API na página de visão geral da API.

Instalar e configurar o Jenkins

A CI do Jenkins pode ser instalada no Linux ou no Windows. Alguns detalhes deste guia são específicos da instalação e execução da CI do Jenkins no Linux, incluindo o uso de barras (/) nos caminhos de arquivos.

Para fazer o download e instalar o Jenkins em um computador com o Linux ou o Windows em execução, siga as instruções em Como instalar o Jenkins. Depois de instalar o Jenkins, siga as instruções em Como iniciar e acessar o Jenkins para concluir a configuração e acessar o painel do Jenkins.

Definir as configurações gerais de segurança

O Jenkins não tem autenticação de usuário nem controle de acesso configurado quando é instalado. Antes de usar o Jenkins com o Firebase Test Lab, defina as configurações gerais de segurança para aplicar o controle de acesso e autenticar os usuários.

Como definir as configurações gerais de segurança

  1. Acesse o painel do Jenkins no seu servidor. Para fazer isso, acesse http://<servername>:8080, sendo que <servername> é o nome do computador em que o Jenkins foi instalado.
  2. No painel do Jenkins, clique em Manage Jenkins e, em seguida, clique em Configure Global Security.
  3. Na página Configure Global Security, clique em Enable security e, em seguida, clique em Save.

Para mais informações sobre como definir as configurações de segurança do Jenkins, consulte Segurança rápida e simples, Configuração de segurança padrão e Como proteger o Jenkins.

Criar um projeto do Jenkins

Em seguida, crie um projeto para a execução do teste de integração contínua do seu app com o Firebase Test Lab.

Para criar um projeto do Jenkins

  1. Acesse o painel do Jenkins no seu servidor. Para fazer isso, acesse http://<servername>:8080, sendo que <servername> é o nome do computador em que o Jenkins foi instalado.
  2. No painel do Jenkins, clique em New Item.
  3. Digite um nome para seu projeto no campo Item name:
    • Escolha Freestyle project para criar um projeto que usa uma configuração única de versão.
    • Escolha Build multi-configuration project para criar um projeto executado em várias configurações de versões diferentes. Se você planeja desenvolver seu app com uma variedade de configurações de versão (várias localidades, vários níveis da API do Android etc.), um projeto de multiconfiguração é a melhor escolha.
  4. Clique em Salvar.

Depois de criado o projeto, o navegador da Web exibirá a página principal do projeto.

Adicionar controle de revisão e etapas de versão do Gradle

Esta seção descreve como integrar o Jenkins com sistemas de controle de revisão, como o GitHub, e como adicionar etapas de versão do Gradle para desenvolver pacotes de APK a partir do código-fonte.

Como integrar com o GitHub e outros sistemas de controle de revisão

Se você usa o GitHub ou outro sistema de controle de revisão para gerenciar o código-fonte do app, é possível configurar o Jenkins para executar versões automatizadas e executar testes sempre que houver inserções de atualização no app. Você também pode configurar o Jenkins para executar versões periodicamente.

Para saber como configurar versões no Jenkins, consulte Como configurar versões automáticas (em inglês).

Como adicionar etapas de versão do Gradle para recriar pacotes de APK

Se você usa um sistema de controle de revisão para gerenciar o código-fonte do app, é necessário incluir uma etapa de versão do Gradle para criar novos binários de APK sempre que o Jenkins fizer o download do código-fonte do seu sistema de controle de revisão.

  1. Adicione uma etapa de versão para executar os seguintes comandos no diretório principal do app:

    ./gradlew :app:assembleDebug
    ./gradlew :app:assembleDebugAndroidTest
    

  2. Adicione uma etapa de versão para usar os pacotes APK criados pelo Gradle ao testar com o Test Lab. Você pode usar esse caminho como <local_server_path> no exemplo de script de shell fornecido abaixo, em que <AppFolder> é a pasta do projeto do Android Studio do app:

    <AppFolder>/app/build/outputs/apk
    

Adicionar etapas do build do Test Lab ao Jenkins

Agora você pode adicionar uma etapa de versão ao Jenkins para executar o Test Lab usando a linha de comando do gcloud.

Para adicionar uma etapa de versão do gcloud

  1. Na página principal do seu projeto, clique em Configure.
  2. Na página project configuration, role para baixo até a seção Build e escolha Execute shell no menu Add build step.

  3. Na janela Jenkins Execute shell command, digite o seguinte, substituindo <local_server_path> pelo caminho do app de amostra no servodor, <app_apk> pelo APK do app e <app_test_apk> pelo APK de teste do app:

    gcloud firebase test android run --app <local_server_path>/<app_apk>.apk
    --test <local_server_path>/<app_test_apk>.apk
    

Analisar os resultados dos testes

Depois que o Test Lab concluir o teste do app, é possível rever os resultados do teste no Console do Firebase ou em um bucket do Google Cloud Storage no seu projeto. Também é possível adicionar um comando gsutil ao comando do shell mostrado acima para copiar os dados dos resultados do teste para o computador local. Para mais informações, consulte Como analisar os resultados do Firebase Test Lab.

Integração contínua com outros sistemas de CI

Para saber como usar o Firebase Test Lab com outros sistemas de CI, confira os respectivos documentos: