Android Comms Test Suite (ACTS) esegue test automatizzati di stack di connettività, come Wi-Fi, Bluetooth e servizi cellulari. Lo strumento di test richiede adb . e Python e può essere trovato in tools/test/connectivity/acts
.
Questa pagina descrive come eseguire i test di telefonia di base disponibili in Android Open Source Project (AOSP) per un utente con due telefoni.
Prerequisiti
Per eseguire i test di telefonia ACTS, dovresti avere accesso a un repository Android completo e installare le build di userdebug sui dispositivi che desideri testare.
Download di un repository Android
Segui le istruzioni in Download del sorgente per scaricare un repository Android su un computer dotato di connessione USB ai dispositivi che desideri testare.
- AOSP è una codebase multigigabyte che continua a crescere. Modifica di conseguenza le tue aspettative sui tempi di download.
- Se una macchina ha limiti di dimensione, aggiungi
--depth=1
al comandorepo init
.
- Se una macchina ha limiti di dimensione, aggiungi
- Per ottenere futuri aggiornamenti sugli strumenti ACTS, vai alla directory principale di Android:
- Utilizzare
repo sync tools/test/connectivity
- E
repo sync external/sl4a
- Utilizzare
Verifica delle build di userdebug sui dispositivi
Installa una versione di debug utente di Android sui tuoi dispositivi di prova.
- Crea il repository utilizzando le istruzioni in Creazione di Android .
- Eseguire il flashing del dispositivo come descritto in Flashare un dispositivo .
- Il comando
adb shell getprop ro.build.type
dovrebbe restituireuserdebug
. - Se
ro.build.type
non è disponibile, una build userdebug consente di eseguire la shell adb come root (terminale#
).
- Il comando
Costruire e installare SL4A
Per creare e installare Scripting Layer For Android (SL4A), seguire le istruzioni in Scripting Layer for Android . La sezione Aggiunta di build SL4A alle build Android per impostazione predefinita è facoltativa.
Dopo aver creato SLA4, l'ultimo messaggio di registro contiene la posizione del file sl4a.apk
, che devi installare su TUTTI i dispositivi. Ecco un esempio di messaggio di registro:
Copy: out/target/path/to/sl4a.apk
Configurazione dei dispositivi da testare
Configura i dispositivi utilizzando questi requisiti di build/strumento ACTS:
Se le chiavi del fornitore ADB non sono disponibili, tocca il popup Trust this computer sul DUT quando viene visualizzato. Se le chiavi del fornitore ADB sono disponibili:
- Le chiavi e i driver del fornitore ADB devono essere univoci per il DUT.
- Per abilitare sempre il debug USB, le chiavi del fornitore ADB nell'albero dei sorgenti devono essere aggiunte a
~/.bashrc
(o equivalente) utilizzandoexport ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys
dove/path/to/directory
è il tuo percorso completo sull'host. Per la risoluzione dei problemi di ADB, fare riferimento a Eseguire app su un dispositivo hardware .
Consenti debug USB: quando i driver adb sono installati, i dispositivi adb potrebbero attivare un messaggio sul dispositivo per consentire il debug USB.
Installa
sl4a.apk
utilizzando$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk
Assicurati che i telefoni utilizzino una connessione USB 2.0 al server di test.
Questi test dipendono dalle reti cellulari attive, quindi inserisci le carte SIM nei telefoni e tieni i telefoni in un'area con un buon servizio cellulare.
Aggiungi tutte le schede SIM a un file
.json
come descritto in Scrittura di un file di configurazione .
Impostazione dell'ambiente
Prima di configurare l'ambiente, verifica che sia installato Python 3.4+.
Correre:
sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler
Installazione di ACTS
Correre:
cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -
Per verificare l'installazione, esegui act.py -h
, che stampa un elenco di comandi disponibili.
Scrivere un file di configurazione
Per eseguire i test, è necessario creare un file con le informazioni di configurazione. Ecco un esempio di file .config
. Un file simile è disponibile nel repository Android in tools/test/connectivity/acts/framework/sample_config.json
. Sostituisci XXXXXXX
con i numeri di serie del dispositivo per fornire le informazioni minime necessarie ad ACTS per eseguire un test di 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"
}
Utilizzare i tasti nella tabella per configurare i parametri del test. Fare riferimento a Opzioni di configurazione aggiuntive per ulteriori opzioni.
Chiave | Valore |
---|---|
_description | Commenta il contenuto dell'intero file di configurazione |
testbed | Specifica di un ambiente in cui possono essere eseguiti i test |
(banco di prova) _description | Commenta ogni banco di prova, poiché ACTS può prendere di mira banchi di prova individuali |
name (banco di prova). | Nome del banco di prova per la chiamata dalla riga di comando |
(banco di prova) AndroidDevice | Elenco dei dispositivi specifici target del test Nota: possono essere elencati più dispositivi. Un test che esegue telefoni che si chiamano tra loro prevede che ci siano due dispositivi e fallisce se ce ne sono meno. Se sono elencati due dispositivi e il test ne prevede solo uno, il test verrà eseguito sul primo dispositivo. |
(banco di prova) (dispositivo Android) serial | Numero di serie del dispositivo (stampato dai adb devices ) |
(banco di prova) (dispositivo Android) adb_logcat_param | Parametri passati quando viene chiamato adb logcat durante il test |
logpath | La posizione sul server di test in cui vengono salvati i log |
testpaths | La posizione del codice del test case |
sim_conf_file | Il percorso del file .json che elenca le schede SIM disponibiliL'elenco delle carte SIM include l'ID della carta, le funzionalità della carta, l'operatore e il numero di telefono. |
{
"sim-card-ID-here": {
"capability": [
"voice",
"ims",
"volte",
"vt",
"sms",
"tethering",
"data"
],
"operator": "tmo",
"phone_num": "12345678901"
},
...
}
È possibile estrarre il numero di telefono dal dispositivo in Sistema > Informazioni sul telefono . L'ID della carta SIM è generalmente stampato sulla carta SIM oppure è disponibile nel dispositivo in Sistema > Informazioni sul telefono > Stato SIM . La stringa dell'operatore è definita in tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py
, quindi cercare CARRIER_
.
Ulteriori opzioni di configurazione
Il file entries.py
situato in tools/test/connectivity/acts/framework/acts/config/entries.py
nel repository Android contiene le definizioni per le principali opzioni di configurazione della riga di comando.
Puoi anche trovare parametri specifici del test nel codice cercando self.user_params.get
.
Esecuzione di test
Esegui test dalla riga di comando dopo aver scritto il file di configurazione. Sebbene siano disponibili molte opzioni, la più semplice è utilizzare -c filename.config -tc TestCase:name
. Questo esempio utilizza un file di configurazione denominato minimum.config
:
act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general
Un'esecuzione di test riuscita dovrebbe avere un messaggio di output finale come questo:
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
Esecuzione di più test
Per eseguire casi di test specifici su più file, crea un file di test e passalo con il flag -tf
, come mostrato nella suite di test di regressione di esempio di seguito.
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
Questo comando di esempio presuppone che il file sia denominato regression_suite.
act.py -c minimum.config -tf regression_suite
Esecuzione di test più volte
Per eseguire più volte un test case ( -tc
) o un file di test ( -tf
), aggiungere -ti #
(iterazioni di test) al comando.