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 comandorepo init
.
- Se uma máquina tiver restrição de tamanho, adicione
- 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
- Usar
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 retornaruserdebug
. - Se
ro.build.type
não estiver disponível, uma compilação userdebug permite executar o adb shell como root (terminal#
).
- O comando
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íveisA 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.