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 compilações userdebug nos dispositivos que deseja testar.

Baixando um repositório Android

Siga as instruções em Fazendo download da fonte para baixar um repositório 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 tempo 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 as ferramentas ACTS, acesse o diretório raiz do Android:
    • Use repo sync tools/test/connectivity
    • E repo sync external/sl4a

Verificando compilações userdebug em dispositivos

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

  • Crie o repositório usando as instruções em Construindo o Android .
  • Atualize o dispositivo conforme descrito em Atualização de 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 shell adb como root (terminal # ).

Construindo e instalando SL4A

Para criar e instalar a Camada de Script para Android (SL4A), siga as instruções na Camada de Script para Android . A seção Adicionando compilações SL4A a compilações Android por padrão é opcional.

Após a construção do 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 mensagem de log:

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

Configurando dispositivos para testar

Configure os dispositivos usando estes requisitos de construção/ferramenta 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 os drivers do fornecedor ADB devem ser exclusivos do 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) usando export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys onde /path/to/directory está seu caminho totalmente qualificado no host. Para solucionar problemas de 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 cartões SIM nos telefones e mantenha-os em uma área que tenha um 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 ATOS

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 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 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 da tabela para configurar os parâmetros de teste. Consulte Opções de configuração adicionais para obter mais opções.

Chave Valor
_description Comente sobre o conteúdo de todo o arquivo de configuração
testbed Especificação de um ambiente no qual os testes podem ser executados
(testado) _description Comente sobre cada ambiente de teste, pois o ACTS pode ter como alvo bancos de teste individuais
(testado) name Nome do testbed para chamada a partir da linha de comando
(testado) AndroidDevice Lista de dispositivos específicos aos quais o teste se destina
Nota: 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 a partir de adb devices )
(testbed)(AndroidDevice) adb_logcat_param Parâmetros que são passados ​​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, 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 obter o número de telefone do dispositivo em Sistema > Sobre o telefone . O ID do cartão SIM geralmente está impresso no cartão SIM ou está disponível no dispositivo em Sistema > Sobre o telefone > Status do SIM . A sequência do operador é definida em tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py , em seguida, pesquise 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 Android possui 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 pesquisando 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 conjunto de testes 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 pressupõe que o arquivo seja denominado regression_suite.

act.py -c minimum.config -tf regression_suite

Executando 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.