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 rede celular. A ferramenta de teste requer adb e Python. A ferramenta está localizada 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 smartphones.

Pré-requisitos

Para executar testes de telefonia ACTS, é necessário ter acesso a um repositório completo do Android e instalar builds userdebug nos dispositivos que você quer testar.

Fazer o download de um repositório do Android

Siga as instruções em Fazer o download da origem para baixar um repositório do Android em um computador que tenha uma conexão USB com os dispositivos que você quer testar.

  • O AOSP é uma base de código com vários gigabytes que continua crescendo. 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 receber atualizações futuras sobre as ferramentas do ACTS, acesse o diretório raiz do Android:
    • Usar repo sync tools/test/connectivity
    • E repo sync external/sl4a

Verificar builds userdebug em dispositivos

Instale uma versão userdebug do Android nos dispositivos de teste.

  • Crie o repositório usando as instruções em Criar para Android.
  • Atualizar o dispositivo conforme descrito em Atualizar um dispositivo.
    • O comando adb shell getprop ro.build.type retornará userdebug.
    • Se ro.build.type não estiver disponível, um build userdebug vai permitir a execução do shell do adb como raiz (terminal #).

Criar e instalar o SL4A

Para criar e instalar a camada de scripts para Android (SL4A), siga as instruções em Camada de scripts para Android. A seção Adicionar builds SL4A aos builds do Android por padrão é opcional.

Após a criação do SLA4, a última mensagem de registro 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 registro:

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

Configurar dispositivos para teste

Configure os dispositivos usando estes requisitos de build/ferramenta ACTS:

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

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

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

  • Verifique se os smartphones usam uma conexão USB 2.0 com o servidor de teste.

  • Esses testes dependem de redes celulares ativas. Portanto, coloque os chips nos smartphones e mantenha-os em uma área com um bom serviço de rede celular.

  • Adicione todos os chips a um arquivo JSON, conforme descrito em Gravar um arquivo de configuração.

configurar o ambiente

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

Execute:

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

Instalar o ACTS

Execute:

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.

Gravar um arquivo de configuração

Para executar testes, crie um arquivo com informações de configuração. Confira 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 por números de série do dispositivo para fornecer o mínimo de informações 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 chaves na tabela para configurar os parâmetros de teste. Consulte Outras opções de configuração para mais opções.

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

Você pode consultar o número de telefone do dispositivo em Sistema > Sobre o telefone. O ID do chip geralmente é impresso no chip ou está disponível no dispositivo em Sistema > Sobre o telefone > Status do chip. A string do operador é definida em tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py e, em seguida, pesquise por CARRIER_.

Outras opções de configuração

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 do teste no código pesquisando por self.user_params.get.

Executar 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. Neste exemplo, usamos 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

Executar vários testes

Para executar casos de teste específicos em vários arquivos, crie um arquivo de teste e transmita-o com a flag -tf , conforme mostrado no exemplo do pacote de testes de regressão:

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

Neste comando de exemplo, presumimos que o nome do arquivo seja regression_suite..

act.py -c minimum.config -tf regression_suite

Executar testes várias vezes

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