O Conjunto de teste de comunicações do Android
(ACTS, na sigla em inglês)
realiza testes automatizados de pilhas de conectividade, como Wi-Fi, Bluetooth e
serviços de celular. A ferramenta de teste requer o
adb e o 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, você precisa ter acesso a um repositório completo do Android e instalar builds de 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 fonte para fazer o download de um repositório do Android em uma máquina 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.
- 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 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
- Usar
Verificar builds de 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.
- Atualize 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#
).
- O comando
Criar e instalar o SL4A
Para criar e instalar a Scripting Layer For Android (SL4A), siga as instruções na Scripting Layer for Android. A seção Adicionar builds do 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 estiverem indisponí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 para o DUT.
- Para sempre ativar a depuração por USB, as chaves do fornecedor do ADB na árvore de origem
precisam ser adicionadas a
~/.bashrc
(ou equivalente) usandoexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
, em que/path/to/directory
é o caminho totalmente qualificado no host. Para resolver problemas do adb, consulte Executar apps em um dispositivo de hardware.
Permitir a depuração USB: quando os drivers adb são instalados, os dispositivos adb podem acionar uma solicitação no dispositivo para permitir a depuração USB.
Instale o app
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 mostra uma lista de comandos
disponíveis.
Gravar um arquivo de configuração
Para executar testes, você precisa criar 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
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 na tabela para configurar os parâmetros de teste. Consulte Outras opções de configuração para mais opções.
Chave | Valor |
---|---|
_description
|
Comente o conteúdo de todo o arquivo de configuração |
testbed
|
Especificação de um ambiente em que os testes podem ser executados |
(testbed) _description
|
Comente sobre cada ambiente de teste, já que o ACTS pode segmentar ambientes de teste individuais |
(testbed) name
|
Nome do ambiente de teste para chamadas na linha de comando |
(testbed) AndroidDevice
|
Lista de dispositivos específicos que o teste tem como alvo
Observação:podem ser listados vários dispositivos. Um teste que executa telefones que se ligam entre si espera que haja dois dispositivos e falha se houver menos. Se houver dois dispositivos listados e o teste esperar apenas um, ele será executado no primeiro dispositivo. |
(testbed)(AndroidDevice) serial
|
Número de série do dispositivo (impresso em 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
|
O local do código do caso de teste |
sim_conf_file
|
O local do arquivo .json que lista os chips
disponíveis
A lista de chips inclui o ID do chip, os recursos do chip, 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 extrair o número de telefone do dispositivo em Sistema > Sobre o dispositivo.
O ID do chip geralmente está impresso no próprio chip ou disponível no
dispositivo em Sistema > Sobre o dispositivo > Status do chip. A string do operador é
definida em
tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
.
Em seguida, procure 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 da linha de comando.
Também é possível encontrar parâmetros específicos do teste no código pesquisando
self.user_params.get
.
Executar testes
Execute testes na linha de comando depois que o arquivo de configuração for gravado. 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 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 o transmita
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
Este comando de exemplo pressupõe que o arquivo se chama 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.