Neste guia, descrevemos como executar um teste de instrumentação do Android usando a
gcloud beta device-run CLI e encontrar os resultados no Google Cloud console. Ele
pressupõe que você tenha uma Google Cloud conta e um projeto.
Para usar essa Google Cloud CLI, você precisa fornecer seu Google Cloud projeto ID.
Antes de começar
Estas etapas pressupõem que você já criou um Google Cloud projeto,
concluiu as etapas de configuração na Plataforma de dispositivos para desenvolvedores
Início rápido guia e autenticado
com gcloud no terminal.
Além disso, você precisa ter um teste de instrumentação do Android pronto para execução. Consulte Criar testes instrumentados paraorientações.
Além disso, você precisa ter identificado os IDs dos dispositivos em que quer executar suas cargas de trabalho. Consulte Catálogo de dispositivos para instruções.
Executar um teste
Agora que você conhece os IDs dos dispositivos disponíveis para testar seu app, é possível
especificar dispositivos usando o gcloud beta device-run sessions submit
instrumentation comando e a --device flag para executar testes de instrumentação.
Para executar o teste, emita um comando semelhante ao seguinte, mas com seus próprios IDs de dispositivo e caminho de teste:
gcloud beta device-run sessions submit instrumentation \
--device shiba-34 \
--apps /path/to/app.apk \
--test /path/to/test.apk
A pasta do relatório de resultados do job pode ser encontrada em um caminho do Cloud Storage, como
gs://<your_project_id>/automation/sessions/session-id/. Consulte a saída do teste para o link, semelhante a: https://console.cloud.google.com/storage/browser/your_project_id/automation/sessions/session-id/.
Configurar a execução do teste
Agora que você executou um teste, confira algumas opções de configuração:
- Para executar os mesmos testes em vários dispositivos, forneça a flag
--devicevárias vezes, como--device shiba-34 --device tokay-36. - Opcionalmente, é possível especificar um ou mais APKs para instalar antes de executar os testes usando a flag
--apps=path1,path2,...,path_n. A ordem especificada é a ordem em que esses apps são instalados. - Você precisa especificar o APK de teste com a flag
--test. - Quando você especifica um caminho local com as flags
--appsou--test, a CLI do Google Cloud o copia automaticamente para o bucket do Cloud Storage emgs://my-project-id/automation/inputs/date_time_four_chars_suffix/sempre que você executa o comando. - Como o upload de APKs grandes pode demorar, você pode referenciar diretamente seus APKs usando os caminhos
gs://do Cloud Storage para economizar tempo de upload.
O comando sessions submit instrumentation bloqueia os resultados da sessão por padrão, o que significa que ele vai aguardar a conclusão da execução do teste e gerar resultados semelhantes a:
Using the default Cloud Storage bucket [gs://<my-project-id>] for input and result files. Will create the bucket if it does not exist.
Uploading [app.apk].
Uploading [test.apk].
Initiated long-running operation [operation-number] to create session.
Creating session [session-id] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/<my-project-id>/automation/sessions/session-id/].
Waiting for session [session-id] to complete....done.
Session [session-id] finished with result [FAILED].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Para executar o comando de forma assíncrona, inclua a flag --async. Isso permite que o comando seja encerrado imediatamente após o upload de arquivos para o Cloud Storage e a impressão do ID da operação e do ID da sessão. Você pode usar o comando de espera de operações e o ID da operação para aguardar a execução. Ele será bloqueado até que o job seja concluído:
gcloud beta device-run operations wait your_operation_id
Usar a fragmentação
Para incluir a plataforma de dispositivos para desenvolvedores em um fluxo de trabalho de integração e entrega contínuas (CI/CD), considere fragmentar seus testes. A fragmentação de testes divide um conjunto de testes em subgrupos (fragmentos) que são executados separadamente e de forma isolada. A plataforma de dispositivos para desenvolvedores executa automaticamente cada fragmento em paralelo usando vários dispositivos e conclui todo o conjunto de testes em menos tempo.
Opções de fragmentação
Se os jobs tiverem apenas um pequeno número de casos de teste ou o tempo total de execução de todos os casos de teste não for longo, não será necessário usar a fragmentação. Se você tiver um grande número de casos de teste ou o tempo total de execução de todos os casos de teste for longo, considere usar a fragmentação.
A plataforma de dispositivos para desenvolvedores oferece suporte à fragmentação inteligente e uniforme. Ao decidir como fragmentar seus testes, considere as seguintes opções:
Se todos os casos de teste levarem um tempo semelhante, use a fragmentação uniforme dividindo todos os casos de teste em
nfragmentos.Quando o tempo de execução de diferentes casos de teste varia muito, use a fragmentação inteligente. A plataforma de dispositivos para desenvolvedores usa o tempo de execução histórico do teste para criar diferentes fragmentos e tenta concluir todos os fragmentos em uma duração semelhante.
Fragmentação uniforme
Para fragmentar seus testes com a fragmentação uniforme, inclua as flags --sharding-option=uniform e --uniform-sharding-count= no comando sessions submit instrumentation, desta forma:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34 \
--device tokay-36 \
--sharding-option=uniform \
--uniform-sharding-count=2
Você verá uma saída indicando Job status: 2 running. O serviço cria dois jobs, um para cada dispositivo. Como as entradas para ambos os jobs são idênticas, o serviço centraliza a validação, realizando-as apenas uma vez.
Os dois jobs serão listados separadamente na saída final do comando quando concluídos:
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
Fragmentação inteligente
Para fragmentar seus testes com a fragmentação inteligente, inclua as --sharding-option=smart,
--smart-sharding-max-shard-count=, --smart-sharding-target-duration= (em
minutos ou 1h) e --smart-sharding-record-name= flags no comando sessions
submit instrumentation, desta forma:
gcloud beta device-run sessions submit instrumentation \
--test path/to/test.apk \
--device shiba-34 \
--device shiba-35 \
--device tokay-36 \
--sharding-option=smart \
--smart-sharding-max-shard-count=3 \
--smart-sharding-target-duration=5m \
--smart-sharding-record-name=test.yaml
Você verá a saída final indicando que três jobs foram executados:
Session [session-3cd0564a] finished with result [ERROR].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 execution-000 PASSED
job-001 execution-000 PASSED
job-002 execution-000 PASSED
Confira um resumo das flags de fragmentação inteligente usadas aqui:
--smart-sharding-max-shard-count=SMART_SHARDING_MAX_SHARD_COUNT- Especifique o número máximo de fragmentos a serem criados para a fragmentação inteligente. Se não estiver definido ou definido como 0, os limites máximos definidos pelo sistema serão usados. O intervalo válido é de 0 a 20 para dispositivos físicos e de 0 a 200 para dispositivos virtuais.--smart-sharding-max-shard-count: especifica o número máximo de fragmentos a serem criados. O número de dispositivos especificados na flag--deviceprecisa ser menor ou igual a esse valor.--smart-sharding-target-duration=SMART_SHARDING_TARGET_DURATION- Especifica o tempo de execução segmentado (por exemplo, 2m, 10m, 1h) por fragmento para a fragmentação inteligente. O intervalo válido é de 2m a 1h. Necessário quando--sharding-option=smart.--smart-sharding-record-name=SMART_SHARDING_RECORD_NAME- especifica o nome do arquivo de registro de fragmentação inteligente, excluindo a extensão do arquivo. Necessário quando --sharding-option=smart. Esse arquivo YAML está localizado no Google Cloud bucket do Storage especificado por--bucket-namenosmart-sharding/diretório. Se o arquivo não existir, ele será criado automaticamente. Caso contrário, o conteúdo será atualizado após a conclusão da sessão.
Conferir e gerenciar a execução do teste
Para o modo assíncrono e síncrono do comando sessions submit instrumentation, você pode usar o comando sessions describe para consultar o status do job durante a execução ou receber o resultado após a conclusão:
gcloud beta device-run sessions describe <session_id>
A saída resume os resultados do teste e os links para os resultados no Google Cloud console do. Exemplo:
Session [session-id] finished with result [FAILED].
Result files are stored at [https://console.cloud.google.com/storage/browser/your_project_id-devicerun/automation/sessions/session-id/].
JOB NAME EXECUTION NAME EXECUTION RESULT
job-000 all FAILED: 2 test cases failed, 5 passed
Use o comando a seguir para listar todas as sessões em execução e concluídas:
gcloud beta device-run sessions list
Receba uma saída contendo a lista de sessões no seu projeto, semelhante a:
SESSION_ID START_TIME STATE
session-4825e153 2026-07-28T16:38:43.155Z DONE
session-813ca602 2026-07-28T22:40:32.415Z DONE
Para cancelar uma sessão em execução, execute este comando com o ID da sessão:
gcloud beta device-run sessions cancel your_session_id
A seguir
Em seguida, encontre e analise os registros.