Testes de telefonia ACTS

O Android Comms Test Suite (ACTS) realiza testes automatizados de pilhas de conectividade, como Wi-Fi, Bluetooth e serviços de celular. A ferramenta de teste requer adb . e Python, e pode ser encontrado em tools/test/connectivity/acts .

Esta página descreve como executar os testes básicos de telefonia disponíveis no Android Open Source Project (AOSP) para um usuário com dois telefones.

Pré-requisitos

Para executar testes de telefonia ACTS, você deve ter acesso a um repositório Android completo e instalar builds userdebug nos dispositivos que deseja testar.

Baixando um repositório do Android

Siga as instruções em Baixando o código-fonte para baixar um repositório do Android em uma máquina que tenha uma conexão USB com os dispositivos que você deseja testar.

  • AOSP é uma base de código multigigabyte que continua a crescer. Ajuste suas expectativas de tempos de download de acordo.
    • Se uma máquina tiver restrição de tamanho, adicione --depth=1 ao comando repo init .
  • Para obter atualizações futuras sobre ferramentas ACTS, vá para o diretório raiz do Android:
    • Usar repo sync tools/test/connectivity
    • E repo sync external/sl4a

Verificando compilações userdebug em dispositivos

Instale uma versão de depuração de usuário do Android em seus dispositivos de teste.

  • Construa o repositório usando as instruções em Construindo o Android .
  • Atualize o dispositivo conforme descrito em Atualizando um dispositivo .
    • O comando adb shell getprop ro.build.type deve retornar userdebug .
    • Se ro.build.type não estiver disponível, uma compilação userdebug permite executar o adb shell como root (terminal # ).

Construindo e instalando o SL4A

Para construir e instalar a Camada de Script para Android (SL4A), siga as instruções na Camada de Script para Android . A seção Adding SL4A Builds to Android Builds by Default é opcional.

Depois de construir o SLA4, a última mensagem de log contém a localização do arquivo sl4a.apk , que você precisa instalar em TODOS os dispositivos. Aqui está um exemplo de uma mensagem de log:

Copy: out/target/path/to/sl4a.apk

Configurando dispositivos para testar

Configure os dispositivos usando estes requisitos de construção/ferramenta do ACTS:

  • Se as chaves do fornecedor ADB não estiverem disponíveis, toque no pop-up Confiar neste computador no DUT quando ele aparecer. Se as chaves do fornecedor ADB estiverem disponíveis:

    • As chaves e drivers do fornecedor ADB devem ser exclusivos para o DUT.
    • Para sempre ativar a depuração USB, as chaves do fornecedor ADB em sua árvore de origem devem ser adicionadas a ~/.bashrc (ou equivalente) export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys onde /path/to/directory é seu caminho totalmente qualificado no host. Para solucionar problemas do ADB, consulte Executar aplicativos em um dispositivo de hardware .
  • Permitir depuração USB: quando os drivers adb são instalados, os dispositivos adb podem acionar um prompt no dispositivo para permitir a depuração USB.

  • Instale sl4a.apk usando $ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk

  • Certifique-se de que os telefones usem uma conexão USB 2.0 com o servidor de teste.

  • Esses testes dependem de redes celulares ativas; portanto, coloque os cartões SIM nos telefones e mantenha-os em uma área com bom serviço de celular.

  • Adicione todos os cartões SIM a um arquivo .json conforme descrito em Escrevendo um arquivo de configuração .

Configurando o ambiente

Antes de configurar o ambiente, verifique se o Python 3.4+ está instalado .

Correr:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

Instalando o ACTS

Correr:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

Para verificar a instalação, execute act.py -h , que imprime uma lista de comandos disponíveis.

Escrevendo um arquivo de configuração

Para executar testes, você deve criar um arquivo com informações de configuração. Aqui está um exemplo de arquivo .config . Um arquivo semelhante está disponível no repositório do Android em tools/test/connectivity/acts/framework/sample_config.json . Substitua XXXXXXX pelos números de série do dispositivo para fornecer as informações mínimas de que o ACTS precisa para executar um teste de telefonia.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

Use as teclas na tabela para configurar os parâmetros de teste. Consulte Opções de configuração adicionais para obter mais opções.

Chave Valor
_description Comente o conteúdo de todo o arquivo de configuração
testbed Especificação de um ambiente no qual os testes podem ser executados
(testbed) _description Comente cada testbed, pois o ACTS pode ter como alvo testbeds individuais
(testbed) name Nome do testbed para chamar a partir da linha de comando
(testbed) AndroidDevice Lista de dispositivos específicos que o teste tem como alvo
Observação: pode haver vários dispositivos listados. Um teste que executa telefones ligando entre si espera que haja dois dispositivos e falha se houver menos. Se houver dois dispositivos listados e o teste esperar apenas um, esse teste será executado no primeiro dispositivo.
(testbed)(AndroidDevice) serial Número de série do dispositivo (impresso de adb devices )
(testbed)(AndroidDevice) adb_logcat_param Parâmetros que são transmitidos quando adb logcat é chamado durante o teste
logpath O local no servidor de teste onde os logs são salvos
testpaths A localização do código do caso de teste
sim_conf_file A localização do arquivo .json que lista os cartões SIM disponíveis
A lista de cartões SIM inclui o ID do cartão, recursos do cartão, operadora e número de telefone.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

Você pode obter o número de telefone do dispositivo em Sistema > Sobre o telefone . A ID do cartão SIM geralmente está impressa no cartão SIM ou está disponível no dispositivo em Sistema > Sobre o telefone > Status do SIM . A string do operador é definida em tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py , então procure por CARRIER_ .

Opções de configuração adicionais

O arquivo entries.py localizado em tools/test/connectivity/acts/framework/acts/config/entries.py no repositório do Android tem definições para as principais opções de configuração de linha de comando.

Você também pode encontrar parâmetros específicos de teste no código procurando por self.user_params.get .

Executando testes

Execute testes na linha de comando após a gravação do arquivo de configuração. Embora existam muitas opções, a mais simples é usar -c filename.config -tc TestCase:name . Este exemplo usa um arquivo de configuração chamado minimum.config :

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

Uma execução de teste bem-sucedida deve ter uma mensagem de saída final como esta:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

Executando vários testes

Para executar casos de teste específicos em vários arquivos, crie um arquivo de teste e passe-o com o sinalizador -tf , conforme mostrado no exemplo de suíte de teste de regressão abaixo.

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

Este comando de exemplo supõe que o arquivo é denominado regression_suite.

act.py -c minimum.config -tf regression_suite

Executar testes várias vezes

Para executar um caso de teste ( -tc ) ou arquivo de teste ( -tf ) várias vezes, adicione -ti # (iterações de teste) ao comando.