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