O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Provisionamento de dispositivo de teste

O Android Enterprise (AE) Test Harness é um conjunto de testes para validar a compatibilidade corporativa de dispositivos Android. Inclui aplicativos de suporte, casos de teste, arquivos de configuração e um afw-test-tradefed ( afw-test-tradefed ) construído em cts-tradefed . Você deve configurar e executar o recurso de teste AE após concluir o provisionamento para administração de dispositivos .

Nota: Construir e executar o AE Test Harness é semelhante a construir e executar o Android Compatibility Test Suite (CTS) .

Muitas das ferramentas, diretórios e nomes de ramificações incluem o rótulo AfW . Android for Work (AfW) é um nome anterior para os recursos empresariais do Android.

Configurando um ambiente de desenvolvimento

O ambiente de desenvolvimento para o AE Test Harness é semelhante ao sistema operacional Android. Siga as etapas em Requisitos para configurar uma máquina de desenvolvimento.

Baixando o código-fonte

Baixe o código-fonte AE Test Harness usando as etapas em Baixar o código-fonte . O código-fonte AE Test Harness está no projeto ./test/AfwTestHarness . O nome do branch determina a versão do AE Test Harness para download (cada plataforma Android tem uma versão separada do AE Test Harness). Para Android 7.0, o nome do branch é afw-test-harness-nougat-dev . Para inicializar o repo e baixar o código-fonte para este branch, use:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

Para verificar o código-fonte de uma versão diferente, especifique o branch com a tag correspondente. Os ramos disponíveis incluem:

Nome da filial Plataforma Android Suportada
afw-test-harness-nougat-dev Android 7.0
afw-test-harness-2.1 Android 7.0
afw-test-harness-marshmallow-dev Android 6.0
afw-test-harness-1.5 Android 6.0

Outros projetos de dependência necessários para construir o chicote também são baixados com o código-fonte.

Visualização no Android Studio

Para visualizar e editar o código-fonte no Android Studio:

  1. Execute os seguintes comandos
    make idegen
    development/tools/idegen/idegen.sh
    
  2. No Android Studio, abra android.ipr .

O código-fonte AE Test Harness está em test/AfwTestHarness .

Configurando o Chicote de Teste AE

Você pode personalizar o chicote configurando test/AfwTestHarness/afw-test.props . Para operar o chicote com sucesso, conclua as seguintes etapas:

  1. Configure a rede Wi-Fi em afw-test.props com as seguintes propriedades:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Obtenha pelo menos uma conta de um domínio vinculado ao Test DPC como seu controlador de política de dispositivo. Especifique os detalhes em afw-test.props com as seguintes propriedades:
    work_account_username
    work_account_password
    

    O AE Test Harness usa o Test DPC para testar os fluxos de provisionamento, portanto, as contas devem ser vinculadas ao Test DPC para executar o teste.

Construindo o arnês de teste AE

Inicialize a configuração de compilação usando:

source build/envsetup.sh
lunch

Selecione um tipo de dispositivo e pressione Enter .

Construir o arnês usando:

make afw-test-harness -j32

Isso cria um diretório ( out/host/linux-x86/afw-th/android-cts ) com todos os binários, arquivos de configuração e ferramentas necessários para executar o equipamento de teste. Este diretório também é compactado em um arquivo ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) para distribuição.

Executando o Chicote de Teste AE

Use as seguintes etapas para executar o Chicote de Teste AE:

  1. Em seu ambiente de construção, inicie o executor de teste usando:
    afw-test-tradefed
    
    Isso inicia o console cts-tf , carrega planos de teste, casos de teste e afw-test.props de out/host/linux-x86/afw-th/android-cts .
  2. Na pasta descompactada de android-afw-test-harness.zip , inicie o executor de teste usando:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Isso carrega planos de teste, casos de teste e afw-test.props do diretório android-cts . Certifique-se de que ./android‐cts/repository/testcases/afw-test.props tem a conta de trabalho e configuração de Wi-Fi.
  3. Execute um plano de teste. Cada plano de teste é um arquivo XML que contém um conjunto de pacotes de teste do diretório do pacote de teste AfwTestHarness/tests . Planos comuns incluem:
    • afw-userdebug-build . Contém todos os pacotes de teste que requerem um build de userdebug.
    • afw-user-build . É executado em uma construção do usuário, mas requer que o dispositivo de teste seja configurado corretamente, incluindo a conclusão da configuração inicial e a ativação da depuração USB.

    Para executar o plano de teste afw-userdebug-build , use:
    cts-tf> run cts --plan afw-userdebug-build
    
    Para ver todos os planos de teste, use os list plans comandos. Para visualizar as definições do plano, consulte out/host/linux-x86/afw-th/android-cts/repository/plans
  4. Execute um pacote de teste. Para executar um único pacote de teste, use
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    . Para ver todos os pacotes, use os list packages comandos. Para obter mais opções, use o comando run cts --help .

Depurando o arnês de teste AE

Execute todos os comandos no console afw-test-tradefed ( cts-tf ), que você pode iniciar executando afw-test-tradefed .

  • Exiba mais informações com os sinalizadores -l INFO ou -l DEBUG . Exemplo:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Execute o equipamento de teste em um dispositivo específico com o sinalizador -s . Exemplo:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Execute o teste de chicote em todos os dispositivos conectados com o sinalizador --all-devices . Exemplo:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Veja as execuções em execução atuais usando list invocations ou li .
  • Visualize o resumo das execuções de testes anteriores usando os list results ou lr .
  • Veja outros comandos da list usando help list .
  • Monitore o logcat em tempo real com filtro usando afwtest , depois abra outro terminal e inicie o logcat usando: adb logcat | grep afwtest . Após a conclusão de um teste:
    • Visualize os logs em out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . O logcat completo do dispositivo e o log do host (logs afw-test-tradefed ) são salvos em arquivos zip separados.
    • Encontre informações relevantes pesquisando o logcat do dispositivo para afwtest . Exemplo: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Para visualizar o log afw-test-tradefed completo, use: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Um pacote de teste automatiza um fluxo de provisionamento corporativo percorrendo as páginas da IU e gravando um log de navegação no arquivo logcat do dispositivo para cada página. Exemplo: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    As páginas da IU para o pacote de teste com.android.afwtest.NfcProvisioning incluem:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Se um teste falhou durante o processo de provisionamento, o logcat contém um erro semelhante a:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Isso geralmente é causado por erros em uma página da interface do usuário anterior ou a página que falhou ao carregar, então tente encontrar outras mensagens de erro no logcat antes deste erro, então tente reproduzi-lo manualmente seguindo o fluxo de provisionamento.
  • Se um pacote de teste falhar:
    • Uma captura de tela é salva em out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time usando a seguinte sintaxe: screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Essas informações também são registradas no log do host.
    • Um relatório de bug é salvo em out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time como: bug- test_class_full_name _ test_case_name - random_number .zip .
  • Após a execução de todos os pacotes de teste, uma captura de tela é obtida e salva em out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time como: screenshot- random_number .png . Essas informações também são registradas no log do host.

Perguntas frequentes

Para obter ajuda com perguntas não respondidas abaixo, entre em contato com afw-testharness-support@google.com .

Posso executar o plano de teste afw-userdebug-build em um dispositivo afw-userdebug-build com a versão do usuário?

Não. Os pacotes de teste no plano afw-userdebug-build redefinem os afw-userdebug-build fábrica do dispositivo de teste antes de executar o fluxo de teste real e exigem que a depuração do adb seja habilitada automaticamente. Com uma versão do usuário, a depuração do adb pode ser ativada apenas alterando manualmente a configuração nas opções do desenvolvedor.

Posso executar o plano de teste afw-user-build em um dispositivo atualizado com o build userdebug?

Sim, mas recomendamos que você execute este plano de teste em uma construção de usuário.

Às vezes, meu teste falha porque o carregamento da IU leva muito tempo. Como posso consertar isso?

Configure o timeout_size configuração no ./android-cts/repository/testcases/afw-test.props . As configurações válidas são: S, M, L, XL, XXL.

O pacote de teste com.android.afwtest.NfcProvisioning (ou SuwDoProvisioning ) falha no meu dispositivo porque a configuração inicial instalada (isto é, o Assistente de Configuração) mostra a interface do usuário personalizada (como Termos e Condições) após a conclusão do provisionamento. Como posso pular esta IU personalizada?

Deve haver UI mínima após o processo de provisionamento. O equipamento de teste pulará automaticamente essa IU se a IU tiver um botão com texto significativo ou descrição de conteúdo que contenha qualquer uma das seguintes palavras: Pular, Concluir, Concluído, Aceitar, Concordar, Avançar, Continuar ou Continuar. Como alternativa, você pode definir um botão em afw-test.props para configurar o equipamento de teste para pular sua IU. Exemplo:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

Para definir vários widgets, separe-os usando vírgulas.

O pacote de teste com.android.afwtest.NfcProvisioning (ou SuwDoProvisioning ) falhou e a última tela da IU é "Verifique sua conta". Por que isso acontece e como posso recuperar o dispositivo de teste?

Essa falha ocorre porque o pacote de teste anterior falhou em limpar a proteção de redefinição de fábrica no final do teste. Você deve inserir manualmente a conta para desbloquear o dispositivo.

Meu dispositivo precisa de mais tempo para redefinir os padrões de fábrica. Posso estender o tempo limite de redefinição de fábrica?

Sim. Configure o factory_reset_timeout_min configuração no afw-test.props . As configurações válidas estão em minutos; você pode definir para qualquer número de minutos que funcione com o seu dispositivo.