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 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 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#
).
- O comando
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) usandoexport 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.